Minor spelling etc updates.
[metze/wireshark/wip.git] / packet-dcerpc-srvsvc.c
index 4f57444299f90029836e90fd6fc3a7f94c6805f6..6b6532ff67879e8b065e6dfa6d051580eafac12b 100644 (file)
@@ -1,32 +1,38 @@
 /* packet-dcerpc-srvsvc.c
  * Routines for SMB \\PIPE\\srvsvc packet disassembly
- * Copyright 2001, Tim Potter <tpot@samba.org>
+ * Copyright 2001-2002, Tim Potter <tpot@samba.org>
  * Copyright 2002, Richard Sharpe <rsharpe@ns.aus.com>
  *   decode srvsvc calls where Samba knows them ...
  * Copyright 2002, Ronnie Sahlberg
  *   rewrote entire dissector
  *
- * $Id: packet-dcerpc-srvsvc.c,v 1.35 2002/06/22 14:04:56 sahlberg Exp $
+ * 2002, some share information levels implemented based on samba
+ * sources.
+ *
+ *
+ * $Id: packet-dcerpc-srvsvc.c,v 1.44 2002/09/05 00:17:05 tpot Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
  * Copyright 1998 Gerald Combs
- * 
+ *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation; either version 2
  * of the License, or (at your option) any later version.
- * 
+ *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- * 
+ *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  */
 
+/* The IDL file for this interface can be extracted by grepping for IDL */
+
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -42,6 +48,7 @@
 #include "smb.h"
 
 static int proto_dcerpc_srvsvc = -1;
+static int hf_srvsvc_opnum = -1;
 static int hf_srvsvc_reserved = -1;
 static int hf_srvsvc_server = -1;
 static int hf_srvsvc_emulated_server = -1;
@@ -58,8 +65,10 @@ static int hf_srvsvc_computer = -1;
 static int hf_srvsvc_user = -1;
 static int hf_srvsvc_path = -1;
 static int hf_srvsvc_share_passwd = -1;
+static int hf_srvsvc_share_alternate_name = -1;
 static int hf_srvsvc_file_id = -1;
 static int hf_srvsvc_perm = -1;
+static int hf_srvsvc_policy = -1;
 static int hf_srvsvc_file_num_locks = -1;
 static int hf_srvsvc_con_id = -1;
 static int hf_srvsvc_max_uses = -1;
@@ -100,6 +109,7 @@ static int hf_srvsvc_ulist_mtime = -1;
 static int hf_srvsvc_glist_mtime = -1;
 static int hf_srvsvc_alist_mtime = -1;
 static int hf_srvsvc_security = -1;
+static int hf_srvsvc_dfs_root_flags = -1;
 static int hf_srvsvc_numadmin = -1;
 static int hf_srvsvc_lanmask = -1;
 static int hf_srvsvc_chdevs = -1;
@@ -188,18 +198,55 @@ static int hf_srvsvc_service_bits = -1;
 static int hf_srvsvc_service_bits_of_interest = -1;
 static int hf_srvsvc_update_immediately = -1;
 static int hf_srvsvc_path_flags = -1;
+static int hf_srvsvc_share_flags = -1;
 static int hf_srvsvc_path_type = -1;
 static int hf_srvsvc_outbuflen = -1;
 static int hf_srvsvc_prefix = -1;
 static int hf_srvsvc_hnd = -1;
+static int hf_srvsvc_server_stat_start = -1;
+static int hf_srvsvc_server_stat_fopens = -1;
+static int hf_srvsvc_server_stat_devopens = -1;
+static int hf_srvsvc_server_stat_jobsqueued = -1;
+static int hf_srvsvc_server_stat_sopens = -1;
+static int hf_srvsvc_server_stat_stimeouts = -1;
+static int hf_srvsvc_server_stat_serrorout = -1;
+static int hf_srvsvc_server_stat_pwerrors = -1;
+static int hf_srvsvc_server_stat_permerrors = -1;
+static int hf_srvsvc_server_stat_syserrors = -1;
+static int hf_srvsvc_server_stat_bytessent = -1;
+static int hf_srvsvc_server_stat_bytesrcvd = -1;
+static int hf_srvsvc_server_stat_avresponse = -1;
+static int hf_srvsvc_server_stat_reqbufneed = -1;
+static int hf_srvsvc_server_stat_bigbufneed = -1;
+static int hf_srvsvc_tod_elapsed = -1;
+static int hf_srvsvc_tod_msecs = -1;
+static int hf_srvsvc_tod_hours = -1;
+static int hf_srvsvc_tod_mins = -1;
+static int hf_srvsvc_tod_secs = -1;
+static int hf_srvsvc_tod_hunds = -1;
+static int hf_srvsvc_tod_timezone = -1;
+static int hf_srvsvc_tod_tinterval = -1;
+static int hf_srvsvc_tod_day = -1;
+static int hf_srvsvc_tod_month = -1;
+static int hf_srvsvc_tod_year = -1;
+static int hf_srvsvc_tod_weekday = -1;
+static int hf_srvsvc_path_len = -1;
 
 static gint ett_dcerpc_srvsvc = -1;
 static gint ett_srvsvc_share_info_1 = -1;
 static gint ett_srvsvc_share_info_2 = -1;
+static gint ett_srvsvc_share_info_501 = -1;
 static gint ett_srvsvc_share_info_502 = -1;
 
 
 
+/*
+ IDL [ uuid(4b324fc8-1670-01d3-1278-5a47bf6ee188),
+ IDL   version(3.0),
+ IDL   implicit_handle(handle_t rpc_binding)
+ IDL ] interface srvsvc
+ IDL {
+*/
 static e_uuid_t uuid_dcerpc_srvsvc = {
         0x4b324fc8, 0x1670, 0x01d3,
         { 0x12, 0x78, 0x5a, 0x47, 0xbf, 0x6e, 0xe1, 0x88 }
@@ -208,8 +255,8 @@ static e_uuid_t uuid_dcerpc_srvsvc = {
 static guint16 ver_dcerpc_srvsvc = 3;
 
 static int
-srvsvc_dissect_pointer_long(tvbuff_t *tvb, int offset, 
-                             packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_pointer_long(tvbuff_t *tvb, int offset,
+                             packet_info *pinfo, proto_tree *tree,
                              char *drep)
 {
        dcerpc_info *di;
@@ -221,8 +268,8 @@ srvsvc_dissect_pointer_long(tvbuff_t *tvb, int offset,
 }
 
 static int
-srvsvc_dissect_ENUM_HANDLE(tvbuff_t *tvb, int offset, 
-                          packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_ENUM_HANDLE(tvbuff_t *tvb, int offset,
+                          packet_info *pinfo, proto_tree *tree,
                           char *drep)
 {
 
@@ -233,8 +280,8 @@ srvsvc_dissect_ENUM_HANDLE(tvbuff_t *tvb, int offset,
 }
 
 static int
-srvsvc_dissect_pointer_UNICODE_STRING(tvbuff_t *tvb, int offset, 
-                                     packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_pointer_UNICODE_STRING(tvbuff_t *tvb, int offset,
+                                     packet_info *pinfo, proto_tree *tree,
                                      char *drep)
 {
        dcerpc_info *di;
@@ -245,7 +292,7 @@ srvsvc_dissect_pointer_UNICODE_STRING(tvbuff_t *tvb, int offset,
                return offset;
        }
 
-       offset = dissect_ndr_nt_UNICODE_STRING_str(tvb, offset, pinfo, tree, 
+       offset = dissect_ndr_nt_UNICODE_STRING_str(tvb, offset, pinfo, tree,
                                                   drep);
        return offset;
 }
@@ -260,20 +307,20 @@ srvsvc_dissect_pointer_UNICODE_STRING(tvbuff_t *tvb, int offset,
  * IDL } CHARDEV_INFO_0;
  */
 static int
-srvsvc_dissect_CHARDEV_INFO_0(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_CHARDEV_INFO_0(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Char Device",
                hf_srvsvc_chrdev, 0);
-       
+
        return offset;
 }
 static int
-srvsvc_dissect_CHARDEV_INFO_0_array(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_CHARDEV_INFO_0_array(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
@@ -289,8 +336,8 @@ srvsvc_dissect_CHARDEV_INFO_0_array(tvbuff_t *tvb, int offset,
  * IDL } CHARDEV_INFO_0_CONTAINER;
  */
 static int
-srvsvc_dissect_CHARDEV_INFO_0_CONTAINER(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_CHARDEV_INFO_0_CONTAINER(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
@@ -312,19 +359,19 @@ srvsvc_dissect_CHARDEV_INFO_0_CONTAINER(tvbuff_t *tvb, int offset,
  * IDL } CHARDEV_INFO_1;
  */
 static int
-srvsvc_dissect_CHARDEV_INFO_1(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_CHARDEV_INFO_1(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Char Device",
                hf_srvsvc_chrdev, 0);
-       
+
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_srvsvc_chrdev_status, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "User",
                hf_srvsvc_user, 0);
@@ -336,8 +383,8 @@ srvsvc_dissect_CHARDEV_INFO_1(tvbuff_t *tvb, int offset,
        return offset;
 }
 static int
-srvsvc_dissect_CHARDEV_INFO_1_array(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_CHARDEV_INFO_1_array(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
@@ -353,8 +400,8 @@ srvsvc_dissect_CHARDEV_INFO_1_array(tvbuff_t *tvb, int offset,
  * IDL } CHARDEV_INFO_1_CONTAINER;
  */
 static int
-srvsvc_dissect_CHARDEV_INFO_1_CONTAINER(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_CHARDEV_INFO_1_CONTAINER(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
@@ -374,8 +421,8 @@ srvsvc_dissect_CHARDEV_INFO_1_CONTAINER(tvbuff_t *tvb, int offset,
  * IDL } CHARDEV_ENUM_UNION;
  */
 static int
-srvsvc_dissect_CHARDEV_ENUM_UNION(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_CHARDEV_ENUM_UNION(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        guint32 level;
@@ -409,8 +456,8 @@ srvsvc_dissect_CHARDEV_ENUM_UNION(tvbuff_t *tvb, int offset,
  * IDL } CHARDEV_ENUM_STRUCT;
  */
 static int
-srvsvc_dissect_CHARDEV_ENUM_STRUCT(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_CHARDEV_ENUM_STRUCT(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
@@ -428,8 +475,8 @@ srvsvc_dissect_CHARDEV_ENUM_STRUCT(tvbuff_t *tvb, int offset,
  * IDL } CHARDEV_INFO_UNION;
  */
 static int
-srvsvc_dissect_CHARDEV_INFO_UNION(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_CHARDEV_INFO_UNION(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        guint32 level;
@@ -466,16 +513,16 @@ srvsvc_dissect_CHARDEV_INFO_UNION(tvbuff_t *tvb, int offset,
  * IDL );
 */
 static int
-srvsvc_dissect_netrchardevenum_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrchardevenum_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Server",
                hf_srvsvc_server, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_CHARDEV_ENUM_STRUCT,
                NDR_POINTER_REF, "CHARDEV_ENUM_STRUCT",
                -1, 0);
@@ -490,11 +537,11 @@ srvsvc_dissect_netrchardevenum_rqst(tvbuff_t *tvb, int offset,
        return offset;
 }
 static int
-srvsvc_dissect_netrchardevenum_reply(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrchardevenum_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_CHARDEV_ENUM_STRUCT,
                        NDR_POINTER_REF, "CHARDEV_ENUM_STRUCT",
                        -1, 0);
@@ -506,7 +553,7 @@ srvsvc_dissect_netrchardevenum_reply(tvbuff_t *tvb, int offset,
                        srvsvc_dissect_ENUM_HANDLE,
                        NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
 
-       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_rc, NULL);
 
        return offset;
@@ -522,16 +569,16 @@ srvsvc_dissect_netrchardevenum_reply(tvbuff_t *tvb, int offset,
  * IDL );
 */
 static int
-srvsvc_dissect_netrchardevgetinfo_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrchardevgetinfo_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Server",
                hf_srvsvc_server, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_REF, "Char Device",
                hf_srvsvc_chrdev, 0);
@@ -542,15 +589,15 @@ srvsvc_dissect_netrchardevgetinfo_rqst(tvbuff_t *tvb, int offset,
        return offset;
 }
 static int
-srvsvc_dissect_netrchardevgetinfo_reply(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrchardevgetinfo_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_CHARDEV_INFO_UNION,
                        NDR_POINTER_REF, "CHARDEV_INFO_UNION", -1, 0);
 
-       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_rc, NULL);
 
        return offset;
@@ -560,20 +607,20 @@ srvsvc_dissect_netrchardevgetinfo_reply(tvbuff_t *tvb, int offset,
  * IDL long NetrCharDevControl(
  * IDL      [in] [string] [unique] wchar_t *ServerName,
  * IDL      [in] [string] [ref] wchar_t *DevName,
- * IDL      [in] long Opcode 
+ * IDL      [in] long Opcode
  * IDL );
 */
 static int
-srvsvc_dissect_netrchardevcontrol_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrchardevcontrol_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Server",
                hf_srvsvc_server, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_REF, "Char Device",
                hf_srvsvc_chrdev, 0);
@@ -584,11 +631,11 @@ srvsvc_dissect_netrchardevcontrol_rqst(tvbuff_t *tvb, int offset,
        return offset;
 }
 static int
-srvsvc_dissect_netrchardevcontrol_reply(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrchardevcontrol_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_rc, NULL);
 
        return offset;
@@ -602,20 +649,20 @@ srvsvc_dissect_netrchardevcontrol_reply(tvbuff_t *tvb, int offset,
  * IDL } CHARDEVQ_INFO_0;
  */
 static int
-srvsvc_dissect_CHARDEVQ_INFO_0(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_CHARDEVQ_INFO_0(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Char QDevice",
                hf_srvsvc_chrdev, 0);
-       
+
        return offset;
 }
 static int
-srvsvc_dissect_CHARDEVQ_INFO_0_array(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_CHARDEVQ_INFO_0_array(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
@@ -631,8 +678,8 @@ srvsvc_dissect_CHARDEVQ_INFO_0_array(tvbuff_t *tvb, int offset,
  * IDL } CHARDEVQ_INFO_0_CONTAINER;
  */
 static int
-srvsvc_dissect_CHARDEVQ_INFO_0_CONTAINER(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_CHARDEVQ_INFO_0_CONTAINER(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
@@ -655,23 +702,23 @@ srvsvc_dissect_CHARDEVQ_INFO_0_CONTAINER(tvbuff_t *tvb, int offset,
  * IDL } CHARDEVQ_INFO_1;
  */
 static int
-srvsvc_dissect_CHARDEVQ_INFO_1(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_CHARDEVQ_INFO_1(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Char Device",
                hf_srvsvc_chrdev, 0);
-       
+
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_srvsvc_chrqpri, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Char Devices",
                hf_srvsvc_chrdevq, 0);
-       
+
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_srvsvc_chrqnumusers, 0);
 
@@ -681,8 +728,8 @@ srvsvc_dissect_CHARDEVQ_INFO_1(tvbuff_t *tvb, int offset,
        return offset;
 }
 static int
-srvsvc_dissect_CHARDEVQ_INFO_1_array(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_CHARDEVQ_INFO_1_array(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
@@ -698,8 +745,8 @@ srvsvc_dissect_CHARDEVQ_INFO_1_array(tvbuff_t *tvb, int offset,
  * IDL } CHARDEVQ_INFO_1_CONTAINER;
  */
 static int
-srvsvc_dissect_CHARDEVQ_INFO_1_CONTAINER(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_CHARDEVQ_INFO_1_CONTAINER(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
@@ -719,8 +766,8 @@ srvsvc_dissect_CHARDEVQ_INFO_1_CONTAINER(tvbuff_t *tvb, int offset,
  * IDL } CHARDEVQ_ENUM_UNION;
  */
 static int
-srvsvc_dissect_CHARDEVQ_ENUM_UNION(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_CHARDEVQ_ENUM_UNION(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        guint32 level;
@@ -754,8 +801,8 @@ srvsvc_dissect_CHARDEVQ_ENUM_UNION(tvbuff_t *tvb, int offset,
  * IDL } CHARDEVQ_ENUM_STRUCT;
  */
 static int
-srvsvc_dissect_CHARDEVQ_ENUM_STRUCT(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_CHARDEVQ_ENUM_STRUCT(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
@@ -773,8 +820,8 @@ srvsvc_dissect_CHARDEVQ_ENUM_STRUCT(tvbuff_t *tvb, int offset,
  * IDL } CHARDEVQ_INFO;
  */
 static int
-srvsvc_dissect_CHARDEVQ_INFO(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_CHARDEVQ_INFO(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        guint32 level;
@@ -813,21 +860,21 @@ srvsvc_dissect_CHARDEVQ_INFO(tvbuff_t *tvb, int offset,
  * IDL );
 */
 static int
-srvsvc_dissect_netrchardevqenum_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrchardevqenum_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Server",
                hf_srvsvc_server, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "User",
                hf_srvsvc_user, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_CHARDEVQ_ENUM_STRUCT,
                NDR_POINTER_REF, "CHARDEVQ_ENUM_STRUCT",
                -1, 0);
@@ -842,11 +889,11 @@ srvsvc_dissect_netrchardevqenum_rqst(tvbuff_t *tvb, int offset,
        return offset;
 }
 static int
-srvsvc_dissect_netrchardevqenum_reply(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrchardevqenum_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_CHARDEVQ_ENUM_STRUCT,
                        NDR_POINTER_REF, "CHARDEVQ_ENUM_STRUCT",
                        -1, 0);
@@ -858,7 +905,7 @@ srvsvc_dissect_netrchardevqenum_reply(tvbuff_t *tvb, int offset,
                        srvsvc_dissect_ENUM_HANDLE,
                        NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
 
-       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_rc, NULL);
 
        return offset;
@@ -874,40 +921,40 @@ srvsvc_dissect_netrchardevqenum_reply(tvbuff_t *tvb, int offset,
  * IDL );
 */
 static int
-srvsvc_dissect_netrchardevqgetinfo_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrchardevqgetinfo_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Server",
                hf_srvsvc_server, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_REF, "Device Queue",
                hf_srvsvc_chrdevq, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_REF, "User",
                hf_srvsvc_user, 0);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_srvsvc_info_level, NULL);
 
        return offset;
 }
 static int
-srvsvc_dissect_netrchardevqgetinfo_reply(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrchardevqgetinfo_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_CHARDEVQ_INFO,
                        NDR_POINTER_REF, "CHARDEVQ_INFO:", -1, 0);
 
-       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_rc, NULL);
 
        return offset;
@@ -923,24 +970,24 @@ srvsvc_dissect_netrchardevqgetinfo_reply(tvbuff_t *tvb, int offset,
  * IDL );
 */
 static int
-srvsvc_dissect_netrchardevqsetinfo_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrchardevqsetinfo_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Server",
                hf_srvsvc_server, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_REF, "Device Queue",
                hf_srvsvc_chrdevq, 0);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_srvsvc_info_level, NULL);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_CHARDEVQ_INFO,
                NDR_POINTER_REF, "CHARDEVQ_INFO",
                -1, 0);
@@ -952,15 +999,15 @@ srvsvc_dissect_netrchardevqsetinfo_rqst(tvbuff_t *tvb, int offset,
        return offset;
 }
 static int
-srvsvc_dissect_netrchardevqsetinfo_reply(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrchardevqsetinfo_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
         offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_long, NDR_POINTER_UNIQUE,
                        "Parameter Error:", hf_srvsvc_parm_error, 0);
 
-       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_rc, NULL);
 
        return offset;
@@ -973,16 +1020,16 @@ srvsvc_dissect_netrchardevqsetinfo_reply(tvbuff_t *tvb, int offset,
  * IDL );
 */
 static int
-srvsvc_dissect_netrchardevqpurge_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrchardevqpurge_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Server",
                hf_srvsvc_server, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_REF, "Device Queue",
                hf_srvsvc_chrdevq, 0);
@@ -990,11 +1037,11 @@ srvsvc_dissect_netrchardevqpurge_rqst(tvbuff_t *tvb, int offset,
        return offset;
 }
 static int
-srvsvc_dissect_netrchardevqpurge_reply(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrchardevqpurge_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_rc, NULL);
 
        return offset;
@@ -1008,21 +1055,21 @@ srvsvc_dissect_netrchardevqpurge_reply(tvbuff_t *tvb, int offset,
  * IDL );
 */
 static int
-srvsvc_dissect_netrchardevqpurgeself_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrchardevqpurgeself_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Server",
                hf_srvsvc_server, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_REF, "Device Queue",
                hf_srvsvc_chrdevq, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_REF, "Computer",
                hf_srvsvc_computer, 0);
@@ -1030,11 +1077,11 @@ srvsvc_dissect_netrchardevqpurgeself_rqst(tvbuff_t *tvb, int offset,
        return offset;
 }
 static int
-srvsvc_dissect_netrchardevqpurgeself_reply(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrchardevqpurgeself_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_rc, NULL);
 
        return offset;
@@ -1048,18 +1095,18 @@ srvsvc_dissect_netrchardevqpurgeself_reply(tvbuff_t *tvb, int offset,
  * IDL } CONNECT_INFO_0;
  */
 static int
-srvsvc_dissect_CONNECT_INFO_0(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_CONNECT_INFO_0(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                                      hf_srvsvc_con_id, NULL);
-       
+
        return offset;
 }
 static int
-srvsvc_dissect_CONNECT_INFO_0_array(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_CONNECT_INFO_0_array(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
@@ -1075,8 +1122,8 @@ srvsvc_dissect_CONNECT_INFO_0_array(tvbuff_t *tvb, int offset,
  * IDL } CONNECT_INFO_0_CONTAINER;
  */
 static int
-srvsvc_dissect_CONNECT_INFO_0_CONTAINER(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_CONNECT_INFO_0_CONTAINER(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
@@ -1102,8 +1149,8 @@ srvsvc_dissect_CONNECT_INFO_0_CONTAINER(tvbuff_t *tvb, int offset,
  * IDL } CONNECT_INFO_1;
  */
 static int
-srvsvc_dissect_CONNECT_INFO_1(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_CONNECT_INFO_1(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
@@ -1121,12 +1168,12 @@ srvsvc_dissect_CONNECT_INFO_1(tvbuff_t *tvb, int offset,
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                                      hf_srvsvc_con_time, NULL);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "User",
                hf_srvsvc_user, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Share",
                hf_srvsvc_share, 0);
@@ -1134,8 +1181,8 @@ srvsvc_dissect_CONNECT_INFO_1(tvbuff_t *tvb, int offset,
        return offset;
 }
 static int
-srvsvc_dissect_CONNECT_INFO_1_array(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_CONNECT_INFO_1_array(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
@@ -1151,8 +1198,8 @@ srvsvc_dissect_CONNECT_INFO_1_array(tvbuff_t *tvb, int offset,
  * IDL } CONNECT_INFO_1_CONTAINER;
  */
 static int
-srvsvc_dissect_CONNECT_INFO_1_CONTAINER(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_CONNECT_INFO_1_CONTAINER(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
@@ -1173,8 +1220,8 @@ srvsvc_dissect_CONNECT_INFO_1_CONTAINER(tvbuff_t *tvb, int offset,
  * IDL } CONNECT_ENUM_UNION;
  */
 static int
-srvsvc_dissect_CONNECT_ENUM_UNION(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_CONNECT_ENUM_UNION(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        guint32 level;
@@ -1209,8 +1256,8 @@ srvsvc_dissect_CONNECT_ENUM_UNION(tvbuff_t *tvb, int offset,
  * IDL } CONNECT_ENUM_STRUCT;
  */
 static int
-srvsvc_dissect_CONNECT_ENUM_STRUCT(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_CONNECT_ENUM_STRUCT(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
@@ -1233,21 +1280,21 @@ srvsvc_dissect_CONNECT_ENUM_STRUCT(tvbuff_t *tvb, int offset,
  * IDL );
 */
 static int
-srvsvc_dissect_netrconnectionenum_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrconnectionenum_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Server",
                hf_srvsvc_server, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Qualifier",
                hf_srvsvc_qualifier, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_CONNECT_ENUM_STRUCT,
                NDR_POINTER_REF, "CONNECT_ENUM_STRUCT:",
                -1, 0);
@@ -1262,11 +1309,11 @@ srvsvc_dissect_netrconnectionenum_rqst(tvbuff_t *tvb, int offset,
        return offset;
 }
 static int
-srvsvc_dissect_netrconnectionenum_reply(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrconnectionenum_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_CONNECT_ENUM_STRUCT,
                        NDR_POINTER_REF, "CONNECT_ENUM_STRUCT:",
                        -1, 0);
@@ -1278,7 +1325,7 @@ srvsvc_dissect_netrconnectionenum_reply(tvbuff_t *tvb, int offset,
                        srvsvc_dissect_ENUM_HANDLE,
                        NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
 
-       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_rc, NULL);
 
        return offset;
@@ -1290,18 +1337,18 @@ srvsvc_dissect_netrconnectionenum_reply(tvbuff_t *tvb, int offset,
  * IDL } FILE_INFO_2;
  */
 static int
-srvsvc_dissect_FILE_INFO_2(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_FILE_INFO_2(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                                      hf_srvsvc_file_id, NULL);
-       
+
        return offset;
 }
 static int
-srvsvc_dissect_FILE_INFO_2_array(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_FILE_INFO_2_array(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
@@ -1317,8 +1364,8 @@ srvsvc_dissect_FILE_INFO_2_array(tvbuff_t *tvb, int offset,
  * IDL } FILE_INFO_2_CONTAINER;
  */
 static int
-srvsvc_dissect_FILE_INFO_2_CONTAINER(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_FILE_INFO_2_CONTAINER(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
@@ -1342,8 +1389,8 @@ srvsvc_dissect_FILE_INFO_2_CONTAINER(tvbuff_t *tvb, int offset,
  * IDL } FILE_INFO_3;
  */
 static int
-srvsvc_dissect_FILE_INFO_3(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_FILE_INFO_3(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
@@ -1354,13 +1401,13 @@ srvsvc_dissect_FILE_INFO_3(tvbuff_t *tvb, int offset,
 
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                                      hf_srvsvc_file_num_locks, NULL);
-       
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Path",
                hf_srvsvc_path, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "User",
                hf_srvsvc_user, 0);
@@ -1368,8 +1415,8 @@ srvsvc_dissect_FILE_INFO_3(tvbuff_t *tvb, int offset,
        return offset;
 }
 static int
-srvsvc_dissect_FILE_INFO_3_array(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_FILE_INFO_3_array(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
@@ -1385,8 +1432,8 @@ srvsvc_dissect_FILE_INFO_3_array(tvbuff_t *tvb, int offset,
  * IDL } FILE_INFO_3_CONTAINER;
  */
 static int
-srvsvc_dissect_FILE_INFO_3_CONTAINER(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_FILE_INFO_3_CONTAINER(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
@@ -1407,8 +1454,8 @@ srvsvc_dissect_FILE_INFO_3_CONTAINER(tvbuff_t *tvb, int offset,
  * IDL } FILE_ENUM_UNION;
  */
 static int
-srvsvc_dissect_FILE_ENUM_UNION(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_FILE_ENUM_UNION(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        guint32 level;
@@ -1442,8 +1489,8 @@ srvsvc_dissect_FILE_ENUM_UNION(tvbuff_t *tvb, int offset,
  * IDL } FILE_INFO_UNION;
  */
 static int
-srvsvc_dissect_FILE_INFO_UNION(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_FILE_INFO_UNION(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        guint32 level;
@@ -1478,8 +1525,8 @@ srvsvc_dissect_FILE_INFO_UNION(tvbuff_t *tvb, int offset,
  * IDL } FILE_ENUM_STRUCT;
  */
 static int
-srvsvc_dissect_FILE_ENUM_STRUCT(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_FILE_ENUM_STRUCT(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
@@ -1503,26 +1550,26 @@ srvsvc_dissect_FILE_ENUM_STRUCT(tvbuff_t *tvb, int offset,
  * IDL );
 */
 static int
-srvsvc_dissect_netrfileenum_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrfileenum_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Server",
                hf_srvsvc_server, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Path",
                hf_srvsvc_path, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "User",
                hf_srvsvc_user, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_FILE_ENUM_STRUCT,
                NDR_POINTER_REF, "FILE_ENUM_STRUCT:",
                -1, 0);
@@ -1537,11 +1584,11 @@ srvsvc_dissect_netrfileenum_rqst(tvbuff_t *tvb, int offset,
        return offset;
 }
 static int
-srvsvc_dissect_netrfileenum_reply(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrfileenum_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_FILE_ENUM_STRUCT,
                        NDR_POINTER_REF, "FILE_ENUM_STRUCT:",
                        -1, 0);
@@ -1553,7 +1600,7 @@ srvsvc_dissect_netrfileenum_reply(tvbuff_t *tvb, int offset,
                        srvsvc_dissect_ENUM_HANDLE,
                        NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
 
-       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_rc, NULL);
 
        return offset;
@@ -1569,11 +1616,11 @@ srvsvc_dissect_netrfileenum_reply(tvbuff_t *tvb, int offset,
  * IDL );
 */
 static int
-srvsvc_dissect_netrfilegetinfo_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrfilegetinfo_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Server",
                hf_srvsvc_server, 0);
@@ -1587,15 +1634,15 @@ srvsvc_dissect_netrfilegetinfo_rqst(tvbuff_t *tvb, int offset,
        return offset;
 }
 static int
-srvsvc_dissect_netrfilegetinfo_reply(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrfilegetinfo_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_FILE_INFO_UNION,
                        NDR_POINTER_REF, "FILE_INFO_UNION:", -1, 0);
 
-       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_rc, NULL);
 
        return offset;
@@ -1609,11 +1656,11 @@ srvsvc_dissect_netrfilegetinfo_reply(tvbuff_t *tvb, int offset,
  * IDL );
 */
 static int
-srvsvc_dissect_netrfileclose_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrfileclose_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Server",
                hf_srvsvc_server, 0);
@@ -1624,11 +1671,11 @@ srvsvc_dissect_netrfileclose_rqst(tvbuff_t *tvb, int offset,
        return offset;
 }
 static int
-srvsvc_dissect_netrfileclose_reply(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrfileclose_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_rc, NULL);
 
        return offset;
@@ -1640,20 +1687,20 @@ srvsvc_dissect_netrfileclose_reply(tvbuff_t *tvb, int offset,
  * IDL } SESSION_INFO_0;
  */
 static int
-srvsvc_dissect_SESSION_INFO_0(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SESSION_INFO_0(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Session",
                hf_srvsvc_session, 0);
-       
+
        return offset;
 }
 static int
-srvsvc_dissect_SESSION_INFO_0_array(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SESSION_INFO_0_array(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
@@ -1669,8 +1716,8 @@ srvsvc_dissect_SESSION_INFO_0_array(tvbuff_t *tvb, int offset,
  * IDL } SESSION_INFO_0_CONTAINER;
  */
 static int
-srvsvc_dissect_SESSION_INFO_0_CONTAINER(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SESSION_INFO_0_CONTAINER(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
@@ -1694,20 +1741,20 @@ srvsvc_dissect_SESSION_INFO_0_CONTAINER(tvbuff_t *tvb, int offset,
  * IDL } SESSION_INFO_1;
  */
 static int
-srvsvc_dissect_SESSION_INFO_1(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SESSION_INFO_1(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Session",
                hf_srvsvc_session, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "User",
                hf_srvsvc_user, 0);
-       
+
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                                      hf_srvsvc_session_num_opens, NULL);
 
@@ -1723,8 +1770,8 @@ srvsvc_dissect_SESSION_INFO_1(tvbuff_t *tvb, int offset,
        return offset;
 }
 static int
-srvsvc_dissect_SESSION_INFO_1_array(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SESSION_INFO_1_array(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
@@ -1740,8 +1787,8 @@ srvsvc_dissect_SESSION_INFO_1_array(tvbuff_t *tvb, int offset,
  * IDL } SESSION_INFO_1_CONTAINER;
  */
 static int
-srvsvc_dissect_SESSION_INFO_1_CONTAINER(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SESSION_INFO_1_CONTAINER(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
@@ -1766,20 +1813,20 @@ srvsvc_dissect_SESSION_INFO_1_CONTAINER(tvbuff_t *tvb, int offset,
  * IDL } SESSION_INFO_2;
  */
 static int
-srvsvc_dissect_SESSION_INFO_2(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SESSION_INFO_2(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Session",
                hf_srvsvc_session, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "User",
                hf_srvsvc_user, 0);
-       
+
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                                      hf_srvsvc_session_num_opens, NULL);
 
@@ -1792,7 +1839,7 @@ srvsvc_dissect_SESSION_INFO_2(tvbuff_t *tvb, int offset,
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                                      hf_srvsvc_session_user_flags, NULL);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Client Type:",
                hf_srvsvc_client_type, 0);
@@ -1800,8 +1847,8 @@ srvsvc_dissect_SESSION_INFO_2(tvbuff_t *tvb, int offset,
        return offset;
 }
 static int
-srvsvc_dissect_SESSION_INFO_2_array(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SESSION_INFO_2_array(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
@@ -1817,8 +1864,8 @@ srvsvc_dissect_SESSION_INFO_2_array(tvbuff_t *tvb, int offset,
  * IDL } SESSION_INFO_2_CONTAINER;
  */
 static int
-srvsvc_dissect_SESSION_INFO_2_CONTAINER(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SESSION_INFO_2_CONTAINER(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
@@ -1840,20 +1887,20 @@ srvsvc_dissect_SESSION_INFO_2_CONTAINER(tvbuff_t *tvb, int offset,
  * IDL } SESSION_INFO_10;
  */
 static int
-srvsvc_dissect_SESSION_INFO_10(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SESSION_INFO_10(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Session",
                hf_srvsvc_session, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "User",
                hf_srvsvc_user, 0);
-       
+
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                                      hf_srvsvc_session_time, NULL);
 
@@ -1863,8 +1910,8 @@ srvsvc_dissect_SESSION_INFO_10(tvbuff_t *tvb, int offset,
        return offset;
 }
 static int
-srvsvc_dissect_SESSION_INFO_10_array(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SESSION_INFO_10_array(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
@@ -1880,8 +1927,8 @@ srvsvc_dissect_SESSION_INFO_10_array(tvbuff_t *tvb, int offset,
  * IDL } SESSION_INFO_10_CONTAINER;
  */
 static int
-srvsvc_dissect_SESSION_INFO_10_CONTAINER(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SESSION_INFO_10_CONTAINER(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
@@ -1907,20 +1954,20 @@ srvsvc_dissect_SESSION_INFO_10_CONTAINER(tvbuff_t *tvb, int offset,
  * IDL } SESSION_INFO_502;
  */
 static int
-srvsvc_dissect_SESSION_INFO_502(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SESSION_INFO_502(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Session",
                hf_srvsvc_session, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "User",
                hf_srvsvc_user, 0);
-       
+
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                                      hf_srvsvc_session_num_opens, NULL);
 
@@ -1933,12 +1980,12 @@ srvsvc_dissect_SESSION_INFO_502(tvbuff_t *tvb, int offset,
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                                      hf_srvsvc_session_user_flags, NULL);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Client Type:",
                hf_srvsvc_client_type, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Transport:",
                hf_srvsvc_transport, 0);
@@ -1946,8 +1993,8 @@ srvsvc_dissect_SESSION_INFO_502(tvbuff_t *tvb, int offset,
        return offset;
 }
 static int
-srvsvc_dissect_SESSION_INFO_502_array(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SESSION_INFO_502_array(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
@@ -1963,8 +2010,8 @@ srvsvc_dissect_SESSION_INFO_502_array(tvbuff_t *tvb, int offset,
  * IDL } SESSION_INFO_502_CONTAINER;
  */
 static int
-srvsvc_dissect_SESSION_INFO_502_CONTAINER(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SESSION_INFO_502_CONTAINER(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
@@ -1987,8 +2034,8 @@ srvsvc_dissect_SESSION_INFO_502_CONTAINER(tvbuff_t *tvb, int offset,
  * IDL } SESSION_ENUM_UNION;
  */
 static int
-srvsvc_dissect_SESSION_ENUM_UNION(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SESSION_ENUM_UNION(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        guint32 level;
@@ -2040,8 +2087,8 @@ srvsvc_dissect_SESSION_ENUM_UNION(tvbuff_t *tvb, int offset,
  * IDL } SESSION_ENUM_STRUCT;
  */
 static int
-srvsvc_dissect_SESSION_ENUM_STRUCT(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SESSION_ENUM_STRUCT(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
@@ -2065,26 +2112,26 @@ srvsvc_dissect_SESSION_ENUM_STRUCT(tvbuff_t *tvb, int offset,
  * IDL );
 */
 static int
-srvsvc_dissect_netrsessionenum_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrsessionenum_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Server",
                hf_srvsvc_server, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Computer",
                hf_srvsvc_computer, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "User",
                hf_srvsvc_user, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_SESSION_ENUM_STRUCT,
                NDR_POINTER_REF, "SESSION_ENUM_STRUCT",
                -1, 0);
@@ -2099,11 +2146,11 @@ srvsvc_dissect_netrsessionenum_rqst(tvbuff_t *tvb, int offset,
        return offset;
 }
 static int
-srvsvc_dissect_netrsessionenum_reply(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrsessionenum_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_SESSION_ENUM_STRUCT,
                NDR_POINTER_REF, "SESSION_ENUM_STRUCT",
                -1, 0);
@@ -2115,7 +2162,7 @@ srvsvc_dissect_netrsessionenum_reply(tvbuff_t *tvb, int offset,
                        srvsvc_dissect_ENUM_HANDLE,
                        NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
 
-       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_rc, NULL);
 
        return offset;
@@ -2130,21 +2177,21 @@ srvsvc_dissect_netrsessionenum_reply(tvbuff_t *tvb, int offset,
  * IDL );
 */
 static int
-srvsvc_dissect_netrsessiondel_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrsessiondel_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Server",
                hf_srvsvc_server, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_REF, "Computer",
                hf_srvsvc_computer, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_REF, "User",
                hf_srvsvc_user, 0);
@@ -2152,11 +2199,11 @@ srvsvc_dissect_netrsessiondel_rqst(tvbuff_t *tvb, int offset,
        return offset;
 }
 static int
-srvsvc_dissect_netrsessiondel_reply(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrsessiondel_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_rc, NULL);
 
        return offset;
@@ -2169,11 +2216,11 @@ srvsvc_dissect_netrsessiondel_reply(tvbuff_t *tvb, int offset,
  * IDL } SHARE_INFO_0;
  */
 static int
-srvsvc_dissect_SHARE_INFO_0(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SHARE_INFO_0(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Share",
                hf_srvsvc_share, 0);
@@ -2181,8 +2228,8 @@ srvsvc_dissect_SHARE_INFO_0(tvbuff_t *tvb, int offset,
        return offset;
 }
 static int
-srvsvc_dissect_SHARE_INFO_0_array(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SHARE_INFO_0_array(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
@@ -2198,8 +2245,8 @@ srvsvc_dissect_SHARE_INFO_0_array(tvbuff_t *tvb, int offset,
  * IDL } SHARE_INFO_0_CONTAINER;
  */
 static int
-srvsvc_dissect_SHARE_INFO_0_CONTAINER(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SHARE_INFO_0_CONTAINER(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
@@ -2224,7 +2271,7 @@ srvsvc_dissect_SHARE_INFO_1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto
 {
        proto_item *item = NULL;
        proto_tree *tree = NULL;
-  
+
        dcerpc_info *di;
 
        di=pinfo->private_data;
@@ -2247,8 +2294,8 @@ srvsvc_dissect_SHARE_INFO_1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto
        return offset;
 }
 static int
-srvsvc_dissect_SHARE_INFO_1_array(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SHARE_INFO_1_array(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
@@ -2264,8 +2311,8 @@ srvsvc_dissect_SHARE_INFO_1_array(tvbuff_t *tvb, int offset,
  * IDL } SHARE_INFO_1_CONTAINER;
  */
 static int
-srvsvc_dissect_SHARE_INFO_1_CONTAINER(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SHARE_INFO_1_CONTAINER(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
@@ -2295,7 +2342,7 @@ srvsvc_dissect_SHARE_INFO_2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto
 {
        proto_item *item = NULL;
        proto_tree *tree = NULL;
-  
+
        dcerpc_info *di;
 
        di=pinfo->private_data;
@@ -2320,16 +2367,16 @@ srvsvc_dissect_SHARE_INFO_2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto
 
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                                      hf_srvsvc_max_uses, NULL);
-       
+
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                                      hf_srvsvc_cur_uses, NULL);
-       
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Path",
                hf_srvsvc_path, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Passwd",
                hf_srvsvc_share_passwd, 0);
@@ -2337,8 +2384,8 @@ srvsvc_dissect_SHARE_INFO_2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto
        return offset;
 }
 static int
-srvsvc_dissect_SHARE_INFO_2_array(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SHARE_INFO_2_array(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
@@ -2354,8 +2401,8 @@ srvsvc_dissect_SHARE_INFO_2_array(tvbuff_t *tvb, int offset,
  * IDL } SHARE_INFO_2_CONTAINER;
  */
 static int
-srvsvc_dissect_SHARE_INFO_2_CONTAINER(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SHARE_INFO_2_CONTAINER(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
@@ -2368,6 +2415,77 @@ srvsvc_dissect_SHARE_INFO_2_CONTAINER(tvbuff_t *tvb, int offset,
        return offset;
 }
 
+/*
+  IDL typedef struct {
+  IDL    [unique] [string] wchar_t *share;
+  IDL    long type;
+  IDL    [unique] [string] wchar_t *comment;
+  IDL    long policy;
+  IDL } SHARE_INFO_501;
+*/
+static int
+srvsvc_dissect_SHARE_INFO_501(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, char *drep)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       dcerpc_info *di;
+
+       di=pinfo->private_data;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "Share");
+               tree = proto_item_add_subtree(item, ett_srvsvc_share_info_501);
+       }
+
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
+               srvsvc_dissect_pointer_UNICODE_STRING, NDR_POINTER_UNIQUE,
+               "Share", hf_srvsvc_share, di->levels);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
+               hf_srvsvc_share_type, NULL);
+
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
+               srvsvc_dissect_pointer_UNICODE_STRING, NDR_POINTER_UNIQUE,
+               "Comment", hf_srvsvc_comment, 0);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
+               hf_srvsvc_policy, NULL);
+
+       return offset;
+}
+static int
+srvsvc_dissect_SHARE_INFO_501_array(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
+                                    char *drep)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
+                       srvsvc_dissect_SHARE_INFO_501);
+
+       return offset;
+}
+
+/*
+ * IDL typedef struct {
+ * IDL   long EntriesRead;
+ * IDL   [size_is(EntriesRead)] [unique] SHARE_INFO_501 *shares;
+ * IDL } SHARE_INFO_501_CONTAINER;
+ */
+static int
+srvsvc_dissect_SHARE_INFO_501_CONTAINER(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
+                                    char *drep)
+{
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
+               hf_srvsvc_num_entries, NULL);
+
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
+               srvsvc_dissect_SHARE_INFO_501_array, NDR_POINTER_UNIQUE,
+               "SHARE_INFO_501 array:", -1, 0);
+
+       return offset;
+}
+
+
 /*
   IDL typedef struct {
   IDL    [unique] [string] wchar_t *share;
@@ -2387,7 +2505,7 @@ srvsvc_dissect_SHARE_INFO_502(tvbuff_t *tvb, int offset, packet_info *pinfo, pro
 {
        proto_item *item = NULL;
        proto_tree *tree = NULL;
-  
+
        dcerpc_info *di;
 
        di=pinfo->private_data;
@@ -2412,23 +2530,23 @@ srvsvc_dissect_SHARE_INFO_502(tvbuff_t *tvb, int offset, packet_info *pinfo, pro
 
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                                      hf_srvsvc_max_uses, NULL);
-       
+
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                                      hf_srvsvc_cur_uses, NULL);
-       
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Path",
                hf_srvsvc_path, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Passwd",
                hf_srvsvc_share_passwd, 0);
 
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                                      hf_srvsvc_reserved, NULL);
-       
+
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        lsa_dissect_LSA_SECURITY_DESCRIPTOR_data, NDR_POINTER_UNIQUE,
                        "LSA SECURITY DESCRIPTOR data:", -1, 0);
@@ -2436,8 +2554,8 @@ srvsvc_dissect_SHARE_INFO_502(tvbuff_t *tvb, int offset, packet_info *pinfo, pro
        return offset;
 }
 static int
-srvsvc_dissect_SHARE_INFO_502_array(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SHARE_INFO_502_array(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
@@ -2453,8 +2571,8 @@ srvsvc_dissect_SHARE_INFO_502_array(tvbuff_t *tvb, int offset,
  * IDL } SHARE_INFO_502_CONTAINER;
  */
 static int
-srvsvc_dissect_SHARE_INFO_502_CONTAINER(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SHARE_INFO_502_CONTAINER(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
@@ -2482,8 +2600,8 @@ srvsvc_dissect_SHARE_INFO_1004(tvbuff_t *tvb, int offset, packet_info *pinfo, pr
        return offset;
 }
 static int
-srvsvc_dissect_SHARE_INFO_1004_array(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SHARE_INFO_1004_array(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
@@ -2499,8 +2617,8 @@ srvsvc_dissect_SHARE_INFO_1004_array(tvbuff_t *tvb, int offset,
  * IDL } SHARE_INFO_1004_CONTAINER;
  */
 static int
-srvsvc_dissect_SHARE_INFO_1004_CONTAINER(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SHARE_INFO_1004_CONTAINER(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
@@ -2513,6 +2631,52 @@ srvsvc_dissect_SHARE_INFO_1004_CONTAINER(tvbuff_t *tvb, int offset,
        return offset;
 }
 
+/*
+  IDL typedef struct {
+  IDL    long dfs_root_flags;
+  IDL } SHARE_INFO_1005;
+*/
+static int
+srvsvc_dissect_SHARE_INFO_1005(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, char *drep)
+{
+        offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
+                                     hf_srvsvc_dfs_root_flags, NULL);
+
+       return offset;
+}
+static int
+srvsvc_dissect_SHARE_INFO_1005_array(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
+                                    char *drep)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
+                       srvsvc_dissect_SHARE_INFO_1005);
+
+       return offset;
+}
+
+/*
+ * IDL typedef struct {
+ * IDL   long EntriesRead;
+ * IDL   [size_is(EntriesRead)] [unique] SHARE_INFO_1005 *shares;
+ * IDL } SHARE_INFO_1005_CONTAINER;
+ */
+static int
+srvsvc_dissect_SHARE_INFO_1005_CONTAINER(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
+                                    char *drep)
+{
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
+               hf_srvsvc_num_entries, NULL);
+
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
+               srvsvc_dissect_SHARE_INFO_1005_array, NDR_POINTER_UNIQUE,
+               "SHARE_INFO_1005 array:", -1, 0);
+
+       return offset;
+}
+
+
 /*
   IDL typedef struct {
   IDL    long max_uses;
@@ -2523,12 +2687,12 @@ srvsvc_dissect_SHARE_INFO_1006(tvbuff_t *tvb, int offset, packet_info *pinfo, pr
 {
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                                      hf_srvsvc_max_uses, NULL);
-       
+
        return offset;
 }
 static int
-srvsvc_dissect_SHARE_INFO_1006_array(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SHARE_INFO_1006_array(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
@@ -2544,8 +2708,8 @@ srvsvc_dissect_SHARE_INFO_1006_array(tvbuff_t *tvb, int offset,
  * IDL } SHARE_INFO_1006_CONTAINER;
  */
 static int
-srvsvc_dissect_SHARE_INFO_1006_CONTAINER(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SHARE_INFO_1006_CONTAINER(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
@@ -2560,83 +2724,209 @@ srvsvc_dissect_SHARE_INFO_1006_CONTAINER(tvbuff_t *tvb, int offset,
 
 
 /*
- * IDL typedef [switch_type(long)] union {
- * IDL   [case(0)] [unique] SHARE_INFO_0 *share0;
- * IDL   [case(1)] [unique] SHARE_INFO_1 *share1;
- * IDL   [case(2)] [unique] SHARE_INFO_2 *share2;
- * IDL   [case(502)] [unique] SHARE_INFO_502 *share502;
- * IDL   [case(1004)] [unique] SHARE_INFO_1004 *share1004;
- * IDL   [case(1006)] [unique] SHARE_INFO_1006 *share1006;
- * IDL } SHARE_INFO_UNION;
- */
+  IDL typedef struct {
+  IDL    long flags;
+  IDL    [unique] [string] wchar_t *alternate_directory_name;
+  IDL } SHARE_INFO_1007;
+*/
 static int
-srvsvc_dissect_SHARE_INFO_UNION(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
-                                    char *drep)
+srvsvc_dissect_SHARE_INFO_1007(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, char *drep)
 {
-       guint32 level;
-
-       ALIGN_TO_4_BYTES;
-
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_info_level, &level);
+        offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
+                                     hf_srvsvc_share_flags, NULL);
 
-       switch(level){
-       case 0:
-               offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
-                       srvsvc_dissect_SHARE_INFO_0,
-                       NDR_POINTER_UNIQUE, "SHARE_INFO_0:",
-                       -1, 0);
-               break;
-       case 1:
-               offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
-                       srvsvc_dissect_SHARE_INFO_1,
-                       NDR_POINTER_UNIQUE, "SHARE_INFO_1:",
-                       -1, 0);
-               break;
-       case 2:
-               offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
-                       srvsvc_dissect_SHARE_INFO_2,
-                       NDR_POINTER_UNIQUE, "SHARE_INFO_2:",
-                       -1, 0);
-               break;
-       case 502:
-               offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
-                       srvsvc_dissect_SHARE_INFO_502,
-                       NDR_POINTER_UNIQUE, "SHARE_INFO_502:",
-                       -1, 0);
-               break;
-       case 1004:
-               offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
-                       srvsvc_dissect_SHARE_INFO_1004,
-                       NDR_POINTER_UNIQUE, "SHARE_INFO_1004:",
-                       -1, 0);
-               break;
-       case 1006:
-               offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
-                       srvsvc_dissect_SHARE_INFO_1006,
-                       NDR_POINTER_UNIQUE, "SHARE_INFO_1006:",
-                       -1, 0);
-               break;
-       }
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
+               srvsvc_dissect_pointer_UNICODE_STRING,
+               NDR_POINTER_UNIQUE, "Alternate Name",
+               hf_srvsvc_share_alternate_name, 0);
 
        return offset;
 }
+static int
+srvsvc_dissect_SHARE_INFO_1007_array(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
+                                    char *drep)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
+                       srvsvc_dissect_SHARE_INFO_1007);
 
+       return offset;
+}
 
 /*
- * IDL long NetrShareAdd(
- * IDL      [in] [string] [unique] wchar_t *ServerName,
+ * IDL typedef struct {
+ * IDL   long EntriesRead;
+ * IDL   [size_is(EntriesRead)] [unique] SHARE_INFO_1007 *shares;
+ * IDL } SHARE_INFO_1007_CONTAINER;
+ */
+static int
+srvsvc_dissect_SHARE_INFO_1007_CONTAINER(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
+                                    char *drep)
+{
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
+               hf_srvsvc_num_entries, NULL);
+
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
+               srvsvc_dissect_SHARE_INFO_1007_array, NDR_POINTER_UNIQUE,
+               "SHARE_INFO_1007 array:", -1, 0);
+
+       return offset;
+}
+
+/*
+  IDL typedef struct {
+  IDL    SECDESC [unique] *securitysecriptor; 4byte-len followed by bytestring
+  IDL } SHARE_INFO_1501;
+*/
+static int
+srvsvc_dissect_SHARE_INFO_1501(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, char *drep)
+{
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
+                       lsa_dissect_LSA_SECURITY_DESCRIPTOR_data, NDR_POINTER_UNIQUE,
+                       "LSA SECURITY DESCRIPTOR data:", -1, 0);
+
+       return offset;
+}
+static int
+srvsvc_dissect_SHARE_INFO_1501_array(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
+                                    char *drep)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
+                       srvsvc_dissect_SHARE_INFO_1501);
+
+       return offset;
+}
+
+/*
+ * IDL typedef struct {
+ * IDL   long EntriesRead;
+ * IDL   [size_is(EntriesRead)] [unique] SHARE_INFO_1501 *shares;
+ * IDL } SHARE_INFO_1501_CONTAINER;
+ */
+static int
+srvsvc_dissect_SHARE_INFO_1501_CONTAINER(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
+                                    char *drep)
+{
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
+               hf_srvsvc_num_entries, NULL);
+
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
+               srvsvc_dissect_SHARE_INFO_1501_array, NDR_POINTER_UNIQUE,
+               "SHARE_INFO_1501 array:", -1, 0);
+
+       return offset;
+}
+
+
+/*
+ * IDL typedef [switch_type(long)] union {
+ * IDL   [case(0)] [unique] SHARE_INFO_0 *share0;
+ * IDL   [case(1)] [unique] SHARE_INFO_1 *share1;
+ * IDL   [case(2)] [unique] SHARE_INFO_2 *share2;
+ * IDL   [case(501)] [unique] SHARE_INFO_501 *share501;
+ * IDL   [case(502)] [unique] SHARE_INFO_502 *share502;
+ * IDL   [case(1004)] [unique] SHARE_INFO_1004 *share1004;
+ * IDL   [case(1005)] [unique] SHARE_INFO_1005 *share1005;
+ * IDL   [case(1006)] [unique] SHARE_INFO_1006 *share1006;
+ * IDL   [case(1007)] [unique] SHARE_INFO_1007 *share1007;
+ * IDL   [case(1501)] [unique] SHARE_INFO_1501 *share1501;
+ * IDL } SHARE_INFO_UNION;
+ */
+static int
+srvsvc_dissect_SHARE_INFO_UNION(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
+                                    char *drep)
+{
+       guint32 level;
+
+       ALIGN_TO_4_BYTES;
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_info_level, &level);
+
+       switch(level){
+       case 0:
+               offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
+                       srvsvc_dissect_SHARE_INFO_0,
+                       NDR_POINTER_UNIQUE, "SHARE_INFO_0:",
+                       -1, 0);
+               break;
+       case 1:
+               offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
+                       srvsvc_dissect_SHARE_INFO_1,
+                       NDR_POINTER_UNIQUE, "SHARE_INFO_1:",
+                       -1, 0);
+               break;
+       case 2:
+               offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
+                       srvsvc_dissect_SHARE_INFO_2,
+                       NDR_POINTER_UNIQUE, "SHARE_INFO_2:",
+                       -1, 0);
+               break;
+       case 501:
+               offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
+                       srvsvc_dissect_SHARE_INFO_501,
+                       NDR_POINTER_UNIQUE, "SHARE_INFO_501:",
+                       -1, 0);
+               break;
+       case 502:
+               offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
+                       srvsvc_dissect_SHARE_INFO_502,
+                       NDR_POINTER_UNIQUE, "SHARE_INFO_502:",
+                       -1, 0);
+               break;
+       case 1004:
+               offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
+                       srvsvc_dissect_SHARE_INFO_1004,
+                       NDR_POINTER_UNIQUE, "SHARE_INFO_1004:",
+                       -1, 0);
+               break;
+       case 1005:
+               offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
+                       srvsvc_dissect_SHARE_INFO_1005,
+                       NDR_POINTER_UNIQUE, "SHARE_INFO_1005:",
+                       -1, 0);
+               break;
+       case 1006:
+               offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
+                       srvsvc_dissect_SHARE_INFO_1006,
+                       NDR_POINTER_UNIQUE, "SHARE_INFO_1006:",
+                       -1, 0);
+               break;
+       case 1007:
+               offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
+                       srvsvc_dissect_SHARE_INFO_1007,
+                       NDR_POINTER_UNIQUE, "SHARE_INFO_1007:",
+                       -1, 0);
+               break;
+       case 1501:
+               offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
+                       srvsvc_dissect_SHARE_INFO_1501,
+                       NDR_POINTER_UNIQUE, "SHARE_INFO_1501:",
+                       -1, 0);
+               break;
+       }
+
+       return offset;
+}
+
+
+/*
+ * IDL long NetrShareAdd(
+ * IDL      [in] [string] [unique] wchar_t *ServerName,
  * IDL      [in] long Level,
  * IDL      [in] [ref] SHARE_INFO_UNION *share,
  * IDL      [in] [out] [unique] long *ParmError
  * IDL );
 */
 static int
-srvsvc_dissect_netrshareadd_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrshareadd_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Server",
                hf_srvsvc_server, 0);
@@ -2644,7 +2934,7 @@ srvsvc_dissect_netrshareadd_rqst(tvbuff_t *tvb, int offset,
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_info_level, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_SHARE_INFO_UNION,
                NDR_POINTER_REF, "SHARE_INFO_UNION:",
                -1, 0);
@@ -2656,15 +2946,15 @@ srvsvc_dissect_netrshareadd_rqst(tvbuff_t *tvb, int offset,
        return offset;
 }
 static int
-srvsvc_dissect_netrshareadd_reply(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrshareadd_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
         offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_long, NDR_POINTER_UNIQUE,
                        "Parameter Error:", hf_srvsvc_parm_error, 0);
 
-       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_rc, NULL);
 
        return offset;
@@ -2676,14 +2966,18 @@ srvsvc_dissect_netrshareadd_reply(tvbuff_t *tvb, int offset,
  * IDL   [case(0)] [unique] SHARE_INFO_0_CONTAINER *share0;
  * IDL   [case(1)] [unique] SHARE_INFO_1_CONTAINER *share1;
  * IDL   [case(2)] [unique] SHARE_INFO_2_CONTAINER *share2;
+ * IDL   [case(501)] [unique] SHARE_INFO_501_CONTAINER *share501;
  * IDL   [case(502)] [unique] SHARE_INFO_502_CONTAINER *share502;
  * IDL   [case(1004)] [unique] SHARE_INFO_1004_CONTAINER *share1004;
+ * IDL   [case(1005)] [unique] SHARE_INFO_1005_CONTAINER *share1005;
  * IDL   [case(1006)] [unique] SHARE_INFO_1006_CONTAINER *share1006;
+ * IDL   [case(1007)] [unique] SHARE_INFO_1007_CONTAINER *share1007;
+ * IDL   [case(1501)] [unique] SHARE_INFO_1501_CONTAINER *share1501;
  * IDL } SHARE_ENUM_UNION;
  */
 static int
-srvsvc_dissect_SHARE_ENUM_UNION(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SHARE_ENUM_UNION(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        guint32 level;
@@ -2711,6 +3005,12 @@ srvsvc_dissect_SHARE_ENUM_UNION(tvbuff_t *tvb, int offset,
                        NDR_POINTER_UNIQUE, "SHARE_INFO_2_CONTAINER:",
                        -1, 0);
                break;
+       case 501:
+               offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
+                       srvsvc_dissect_SHARE_INFO_501_CONTAINER,
+                       NDR_POINTER_UNIQUE, "SHARE_INFO_501_CONTAINER:",
+                       -1, 0);
+               break;
        case 502:
                offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_SHARE_INFO_502_CONTAINER,
@@ -2723,12 +3023,30 @@ srvsvc_dissect_SHARE_ENUM_UNION(tvbuff_t *tvb, int offset,
                        NDR_POINTER_UNIQUE, "SHARE_INFO_1004_CONTAINER:",
                        -1, 0);
                break;
+       case 1005:
+               offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
+                       srvsvc_dissect_SHARE_INFO_1005_CONTAINER,
+                       NDR_POINTER_UNIQUE, "SHARE_INFO_1005_CONTAINER:",
+                       -1, 0);
+               break;
        case 1006:
                offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_SHARE_INFO_1006_CONTAINER,
                        NDR_POINTER_UNIQUE, "SHARE_INFO_1006_CONTAINER:",
                        -1, 0);
                break;
+       case 1007:
+               offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
+                       srvsvc_dissect_SHARE_INFO_1007_CONTAINER,
+                       NDR_POINTER_UNIQUE, "SHARE_INFO_1007_CONTAINER:",
+                       -1, 0);
+               break;
+       case 1501:
+               offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
+                       srvsvc_dissect_SHARE_INFO_1501_CONTAINER,
+                       NDR_POINTER_UNIQUE, "SHARE_INFO_1501_CONTAINER:",
+                       -1, 0);
+               break;
        }
 
        return offset;
@@ -2741,8 +3059,8 @@ srvsvc_dissect_SHARE_ENUM_UNION(tvbuff_t *tvb, int offset,
  * IDL } SHARE_ENUM_STRUCT;
  */
 static int
-srvsvc_dissect_SHARE_ENUM_STRUCT(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SHARE_ENUM_STRUCT(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
@@ -2763,8 +3081,8 @@ srvsvc_dissect_SHARE_ENUM_STRUCT(tvbuff_t *tvb, int offset,
  * IDL );
  */
 static int
-srvsvc_dissect_netrshareenum_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrshareenum_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
@@ -2788,8 +3106,8 @@ srvsvc_dissect_netrshareenum_rqst(tvbuff_t *tvb, int offset,
 }
 
 static int
-srvsvc_dissect_netrshareenum_reply(tvbuff_t *tvb, int offset, 
-                                     packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrshareenum_reply(tvbuff_t *tvb, int offset,
+                                     packet_info *pinfo, proto_tree *tree,
                                      char *drep)
 {
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
@@ -2804,7 +3122,7 @@ srvsvc_dissect_netrshareenum_reply(tvbuff_t *tvb, int offset,
                        srvsvc_dissect_ENUM_HANDLE,
                        NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
 
-       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_rc, NULL);
 
        return offset;
@@ -2819,8 +3137,8 @@ srvsvc_dissect_netrshareenum_reply(tvbuff_t *tvb, int offset,
  * IDL );
  */
 static int
-srvsvc_dissect_netrsharegetinfo_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrsharegetinfo_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
@@ -2840,8 +3158,8 @@ srvsvc_dissect_netrsharegetinfo_rqst(tvbuff_t *tvb, int offset,
 }
 
 static int
-srvsvc_dissect_netrsharegetinfo_reply(tvbuff_t *tvb, int offset, 
-                                     packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrsharegetinfo_reply(tvbuff_t *tvb, int offset,
+                                     packet_info *pinfo, proto_tree *tree,
                                      char *drep)
 {
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
@@ -2849,25 +3167,24 @@ srvsvc_dissect_netrsharegetinfo_reply(tvbuff_t *tvb, int offset,
                        NDR_POINTER_REF, "Share",
                        -1, 0);
 
-       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_rc, NULL);
 
        return offset;
 }
 
-/* XXX dont know the out parameters. only the in parameters.
- *
+/*
  * IDL long NetrShareSetInfo(
  * IDL      [in] [string] [unique] wchar_t *ServerName,
  * IDL      [in] [string] [ref] wchar_t *ShareName,
  * IDL      [in] long Level,
  * IDL      [in] [ref] SHARE_INFO_UNION *share
- * IDL      [in] [unique] long *ParmError,
+ * IDL      [in] [out] [unique] long *ParmError,
  * IDL );
  */
 static int
-srvsvc_dissect_netrsharesetinfo_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrsharesetinfo_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
@@ -2894,9 +3211,22 @@ srvsvc_dissect_netrsharesetinfo_rqst(tvbuff_t *tvb, int offset,
 
        return offset;
 }
+static int
+srvsvc_dissect_netrsharesetinfo_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
+                                    char *drep)
+{
+        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
+                       srvsvc_dissect_pointer_long, NDR_POINTER_UNIQUE,
+                       "Parameter Error:", hf_srvsvc_parm_error, 0);
+
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
+                       hf_srvsvc_rc, NULL);
+
+       return offset;
+}
 
-/* XXX dont know the out parameters. only the in parameters.
- *
+/*
  * IDL long NetrShareDel(
  * IDL      [in] [string] [unique] wchar_t *ServerName,
  * IDL      [in] [string] [ref] wchar_t *ShareName,
@@ -2904,8 +3234,8 @@ srvsvc_dissect_netrsharesetinfo_rqst(tvbuff_t *tvb, int offset,
  * IDL );
  */
 static int
-srvsvc_dissect_netrsharedel_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrsharedel_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
@@ -2920,12 +3250,21 @@ srvsvc_dissect_netrsharedel_rqst(tvbuff_t *tvb, int offset,
 
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                                      hf_srvsvc_reserved, NULL);
-       
+
        return offset;
 }
+static int
+srvsvc_dissect_netrsharedel_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
+                                    char *drep)
+{
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
+                       hf_srvsvc_rc, NULL);
 
-/* XXX dont know the out parameters. only the in parameters.
- *
+       return offset;
+}
+
+/*
  * IDL long NetrShareDelSticky(
  * IDL      [in] [string] [unique] wchar_t *ServerName,
  * IDL      [in] [string] [ref] wchar_t *ShareName,
@@ -2933,8 +3272,8 @@ srvsvc_dissect_netrsharedel_rqst(tvbuff_t *tvb, int offset,
  * IDL );
  */
 static int
-srvsvc_dissect_netrsharedelsticky_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrsharedelsticky_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
@@ -2949,20 +3288,30 @@ srvsvc_dissect_netrsharedelsticky_rqst(tvbuff_t *tvb, int offset,
 
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                                      hf_srvsvc_reserved, NULL);
-       
+
+       return offset;
+}
+static int
+srvsvc_dissect_netrsharedelsticky_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
+                                    char *drep)
+{
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
+                       hf_srvsvc_rc, NULL);
+
        return offset;
 }
 
-/* XXX dont know the out parameters. only the in parameters.
- *
+/*
  * IDL long NetrShareCheck(
  * IDL      [in] [string] [unique] wchar_t *ServerName,
  * IDL      [in] [string] [ref] wchar_t *DeviceName,
+ * IDL      [out] long type
  * IDL );
  */
 static int
-srvsvc_dissect_netrsharecheck_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrsharecheck_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
@@ -2970,11 +3319,24 @@ srvsvc_dissect_netrsharecheck_rqst(tvbuff_t *tvb, int offset,
                        NDR_POINTER_UNIQUE, "Server",
                        hf_srvsvc_server, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Char Device",
                hf_srvsvc_chrdev, 0);
-       
+
+       return offset;
+}
+static int
+srvsvc_dissect_netrsharecheck_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
+                                    char *drep)
+{
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
+                       hf_srvsvc_share_type, NULL);
+
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
+                       hf_srvsvc_rc, NULL);
+
        return offset;
 }
 
@@ -2985,14 +3347,14 @@ srvsvc_dissect_netrsharecheck_rqst(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_100;
  */
 static int
-srvsvc_dissect_SERVER_INFO_100(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_100(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_platform_id, NULL);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Server",
                        hf_srvsvc_server, 0);
@@ -3011,28 +3373,28 @@ srvsvc_dissect_SERVER_INFO_100(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_101;
  */
 static int
-srvsvc_dissect_SERVER_INFO_101(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_101(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_platform_id, NULL);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Server",
                        hf_srvsvc_server, 0);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_ver_major, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_ver_minor, NULL);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_server_type, NULL);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Comment",
                        hf_srvsvc_comment, 0);
@@ -3058,51 +3420,51 @@ srvsvc_dissect_SERVER_INFO_101(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_102;
  */
 static int
-srvsvc_dissect_SERVER_INFO_102(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_102(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_platform_id, NULL);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Server",
                        hf_srvsvc_server, 0);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_ver_major, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_ver_minor, NULL);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_server_type, NULL);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Comment",
                        hf_srvsvc_comment, 0);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_users, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_disc, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_hidden, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_announce, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_anndelta, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_licences, NULL);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "User Path",
                        hf_srvsvc_user_path, 0);
@@ -3121,7 +3483,7 @@ srvsvc_dissect_SERVER_INFO_102(tvbuff_t *tvb, int offset,
  * IDL   long lanmask;
  * IDL   [string] [unique] wchar_t *guestaccount;
  * IDL   long chdevs;
- * IDL   long chdevqs; 
+ * IDL   long chdevqs;
  * IDL   long chdevjobs;
  * IDL   long connections;
  * IDL   long shares;
@@ -3145,102 +3507,102 @@ srvsvc_dissect_SERVER_INFO_102(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_402;
  */
 static int
-srvsvc_dissect_SERVER_INFO_402(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_402(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_ulist_mtime, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_glist_mtime, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_alist_mtime, NULL);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Alerts",
                        hf_srvsvc_alerts, 0);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_security, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_numadmin, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_lanmask, NULL);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Guest",
                        hf_srvsvc_guest, 0);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_chdevs, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_chdevqs, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_chdevjobs, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_connections, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_shares, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_openfiles, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_sessopens, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_sessvcs, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_sessreqs, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_opensearch, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_activelocks, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_sizreqbufs, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_numbigbufs, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_numfiletasks, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_alertsched, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_erroralert, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_logonalert, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_accessalert, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_diskalert, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_netioalert, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxauditsz, NULL);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Server Heuristics",
                        hf_srvsvc_srvheuristics, 0);
@@ -3259,7 +3621,7 @@ srvsvc_dissect_SERVER_INFO_402(tvbuff_t *tvb, int offset,
  * IDL   long lanmask;
  * IDL   [string] [unique] wchar_t *guestaccount;
  * IDL   long chdevs;
- * IDL   long chdevqs; 
+ * IDL   long chdevqs;
  * IDL   long chdevjobs;
  * IDL   long connections;
  * IDL   long shares;
@@ -3286,113 +3648,113 @@ srvsvc_dissect_SERVER_INFO_402(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_403;
  */
 static int
-srvsvc_dissect_SERVER_INFO_403(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_403(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_ulist_mtime, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_glist_mtime, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_alist_mtime, NULL);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Alerts",
                        hf_srvsvc_alerts, 0);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_security, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_numadmin, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_lanmask, NULL);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Guest",
                        hf_srvsvc_guest, 0);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_chdevs, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_chdevqs, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_chdevjobs, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_connections, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_shares, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_openfiles, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_sessopens, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_sessvcs, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_sessreqs, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_opensearch, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_activelocks, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_sizreqbufs, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_numbigbufs, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_numfiletasks, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_alertsched, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_erroralert, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_logonalert, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_accessalert, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_diskalert, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_netioalert, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxauditsz, NULL);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Server Heuristics",
                        hf_srvsvc_srvheuristics, 0);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_auditedevents, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_auditprofile, NULL);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Autopath",
                        hf_srvsvc_autopath, 0);
@@ -3423,62 +3785,62 @@ srvsvc_dissect_SERVER_INFO_403(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_502;
  */
 static int
-srvsvc_dissect_SERVER_INFO_502(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_502(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_sessopens, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_sessvcs, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_opensearch, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_sizreqbufs, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_initworkitems, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxworkitems, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_rawworkitems, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_irpstacksize, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxrawbuflen, NULL);
 
        offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_users, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_connections, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxpagedmemoryusage, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxnonpagedmemoryusage, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_enablesoftcompat, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_enableforcedlogoff, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_timesource, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_acceptdownlevelapis, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_lmannounce, NULL);
 
        return offset;
@@ -3531,136 +3893,136 @@ srvsvc_dissect_SERVER_INFO_502(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_503;
  */
 static int
-srvsvc_dissect_SERVER_INFO_503(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_503(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_sessopens, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_sessvcs, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_opensearch, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_sizreqbufs, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_initworkitems, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxworkitems, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_rawworkitems, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_irpstacksize, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxrawbuflen, NULL);
 
        offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_users, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_connections, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxpagedmemoryusage, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxnonpagedmemoryusage, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_enablesoftcompat, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_enableforcedlogoff, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_timesource, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_acceptdownlevelapis, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_lmannounce, NULL);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Domain",
                        hf_srvsvc_domain, 0);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxcopyreadlen, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxcopywritelen, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_minkeepsearch, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxkeepsearch, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_minkeepcomplsearch, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxkeepcomplsearch, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_threadcountadd, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_numblockthreads, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_scavtimeout, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_minrcvqueue, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_minfreeworkitems, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_xactmemsize, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_threadpriority, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxmpxct, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_oplockbreakwait, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_oplockbreakresponsewait, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_enableoplocks, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_enableoplockforceclose, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_enablefcbopens, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_enableraw, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_enablesharednetdrives, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_minfreeconnections, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxfreeconnections, NULL);
 
        return offset;
@@ -3728,183 +4090,183 @@ srvsvc_dissect_SERVER_INFO_503(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_599;
  */
 static int
-srvsvc_dissect_SERVER_INFO_599(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_599(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_sessopens, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_sessvcs, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_opensearch, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_sizreqbufs, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_initworkitems, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxworkitems, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_rawworkitems, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_irpstacksize, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxrawbuflen, NULL);
 
        offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_users, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_connections, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxpagedmemoryusage, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxnonpagedmemoryusage, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_enablesoftcompat, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_enableforcedlogoff, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_timesource, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_acceptdownlevelapis, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_lmannounce, NULL);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Domain",
                        hf_srvsvc_domain, 0);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxcopyreadlen, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxcopywritelen, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_minkeepsearch, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxkeepsearch, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_minkeepcomplsearch, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxkeepcomplsearch, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_threadcountadd, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_numblockthreads, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_scavtimeout, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_minrcvqueue, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_minfreeworkitems, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_xactmemsize, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_threadpriority, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxmpxct, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_oplockbreakwait, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_oplockbreakresponsewait, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_enableoplocks, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_enableoplockforceclose, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_enablefcbopens, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_enableraw, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_enablesharednetdrives, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_minfreeconnections, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxfreeconnections, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_initsesstable, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_initconntable, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_initfiletable, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_initsearchtable, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_alertsched, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_errortreshold, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_networkerrortreshold, NULL);
 
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_diskspacetreshold, NULL);
 
        offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_reserved, NULL);
-       
+
        offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_reserved, NULL);
-       
+
        offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxlinkdelay, NULL);
-       
+
        offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_minlinkthroughput, NULL);
-       
+
        offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_linkinfovalidtime, NULL);
-       
+
        offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_scavqosinfoupdatetime, NULL);
-       
+
        offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxworkitemidletime, NULL);
-       
+
        return offset;
 }
 
@@ -3914,8 +4276,8 @@ srvsvc_dissect_SERVER_INFO_599(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1005;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1005(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1005(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
@@ -3932,11 +4294,11 @@ srvsvc_dissect_SERVER_INFO_1005(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1010;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1010(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1010(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_disc, NULL);
 
        return offset;
@@ -3948,11 +4310,11 @@ srvsvc_dissect_SERVER_INFO_1010(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1016;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1016(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1016(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_hidden, NULL);
 
        return offset;
@@ -3964,11 +4326,11 @@ srvsvc_dissect_SERVER_INFO_1016(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1017;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1017(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1017(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_announce, NULL);
 
        return offset;
@@ -3980,11 +4342,11 @@ srvsvc_dissect_SERVER_INFO_1017(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1018;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1018(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1018(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_anndelta, NULL);
 
        return offset;
@@ -3996,11 +4358,11 @@ srvsvc_dissect_SERVER_INFO_1018(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1107;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1107(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1107(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_users, NULL);
 
        return offset;
@@ -4012,11 +4374,11 @@ srvsvc_dissect_SERVER_INFO_1107(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1501;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1501(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1501(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_sessopens, NULL);
 
        return offset;
@@ -4028,11 +4390,11 @@ srvsvc_dissect_SERVER_INFO_1501(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1502;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1502(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1502(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_sessvcs, NULL);
 
        return offset;
@@ -4044,11 +4406,11 @@ srvsvc_dissect_SERVER_INFO_1502(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1503;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1503(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1503(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_opensearch, NULL);
 
        return offset;
@@ -4060,11 +4422,11 @@ srvsvc_dissect_SERVER_INFO_1503(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1506;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1506(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1506(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxworkitems, NULL);
 
        return offset;
@@ -4076,11 +4438,11 @@ srvsvc_dissect_SERVER_INFO_1506(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1509;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1509(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1509(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxrawbuflen, NULL);
 
        return offset;
@@ -4092,8 +4454,8 @@ srvsvc_dissect_SERVER_INFO_1509(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1510;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1510(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1510(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
        offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
@@ -4108,11 +4470,11 @@ srvsvc_dissect_SERVER_INFO_1510(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1511;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1511(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1511(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_connections, NULL);
 
        return offset;
@@ -4124,11 +4486,11 @@ srvsvc_dissect_SERVER_INFO_1511(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1512;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1512(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1512(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxnonpagedmemoryusage, NULL);
 
        return offset;
@@ -4140,11 +4502,11 @@ srvsvc_dissect_SERVER_INFO_1512(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1513;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1513(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1513(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxpagedmemoryusage, NULL);
 
        return offset;
@@ -4156,11 +4518,11 @@ srvsvc_dissect_SERVER_INFO_1513(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1514;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1514(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1514(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_enablesoftcompat, NULL);
 
        return offset;
@@ -4172,11 +4534,11 @@ srvsvc_dissect_SERVER_INFO_1514(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1515;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1515(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1515(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_enableforcedlogoff, NULL);
 
        return offset;
@@ -4188,11 +4550,11 @@ srvsvc_dissect_SERVER_INFO_1515(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1516;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1516(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1516(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_timesource, NULL);
 
        return offset;
@@ -4204,11 +4566,11 @@ srvsvc_dissect_SERVER_INFO_1516(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1518;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1518(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1518(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_lmannounce, NULL);
 
        return offset;
@@ -4220,11 +4582,11 @@ srvsvc_dissect_SERVER_INFO_1518(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1520;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1520(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1520(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxcopyreadlen, NULL);
 
        return offset;
@@ -4236,11 +4598,11 @@ srvsvc_dissect_SERVER_INFO_1520(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1521;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1521(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1521(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxcopywritelen, NULL);
 
        return offset;
@@ -4252,11 +4614,11 @@ srvsvc_dissect_SERVER_INFO_1521(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1522;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1522(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1522(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_minkeepsearch, NULL);
 
        return offset;
@@ -4268,11 +4630,11 @@ srvsvc_dissect_SERVER_INFO_1522(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1523;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1523(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1523(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxkeepsearch, NULL);
 
        return offset;
@@ -4284,11 +4646,11 @@ srvsvc_dissect_SERVER_INFO_1523(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1524;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1524(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1524(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_minkeepcomplsearch, NULL);
 
        return offset;
@@ -4300,11 +4662,11 @@ srvsvc_dissect_SERVER_INFO_1524(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1525;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1525(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1525(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxkeepcomplsearch, NULL);
 
        return offset;
@@ -4316,11 +4678,11 @@ srvsvc_dissect_SERVER_INFO_1525(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1528;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1528(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1528(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_scavtimeout, NULL);
 
        return offset;
@@ -4332,11 +4694,11 @@ srvsvc_dissect_SERVER_INFO_1528(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1529;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1529(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1529(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_minrcvqueue, NULL);
 
        return offset;
@@ -4348,11 +4710,11 @@ srvsvc_dissect_SERVER_INFO_1529(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1530;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1530(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1530(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_minfreeworkitems, NULL);
 
        return offset;
@@ -4364,11 +4726,11 @@ srvsvc_dissect_SERVER_INFO_1530(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1533;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1533(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1533(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxmpxct, NULL);
 
        return offset;
@@ -4380,11 +4742,11 @@ srvsvc_dissect_SERVER_INFO_1533(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1534;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1534(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1534(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_oplockbreakwait, NULL);
 
        return offset;
@@ -4396,11 +4758,11 @@ srvsvc_dissect_SERVER_INFO_1534(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1535;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1535(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1535(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_oplockbreakresponsewait, NULL);
 
        return offset;
@@ -4412,11 +4774,11 @@ srvsvc_dissect_SERVER_INFO_1535(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1536;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1536(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1536(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_enableoplocks, NULL);
 
        return offset;
@@ -4428,11 +4790,11 @@ srvsvc_dissect_SERVER_INFO_1536(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1537;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1537(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1537(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_enableoplockforceclose, NULL);
 
        return offset;
@@ -4444,11 +4806,11 @@ srvsvc_dissect_SERVER_INFO_1537(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1538;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1538(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1538(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_enablefcbopens, NULL);
 
        return offset;
@@ -4460,11 +4822,11 @@ srvsvc_dissect_SERVER_INFO_1538(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1539;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1539(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1539(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_enableraw, NULL);
 
        return offset;
@@ -4476,11 +4838,11 @@ srvsvc_dissect_SERVER_INFO_1539(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1540;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1540(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1540(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_enablesharednetdrives, NULL);
 
        return offset;
@@ -4492,11 +4854,11 @@ srvsvc_dissect_SERVER_INFO_1540(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1541;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1541(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1541(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_minfreeconnections, NULL);
 
        return offset;
@@ -4508,11 +4870,11 @@ srvsvc_dissect_SERVER_INFO_1541(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1542;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1542(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1542(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxfreeconnections, NULL);
 
        return offset;
@@ -4524,11 +4886,11 @@ srvsvc_dissect_SERVER_INFO_1542(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1543;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1543(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1543(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_initsesstable, NULL);
 
        return offset;
@@ -4540,11 +4902,11 @@ srvsvc_dissect_SERVER_INFO_1543(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1544;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1544(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1544(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_initconntable, NULL);
 
        return offset;
@@ -4556,11 +4918,11 @@ srvsvc_dissect_SERVER_INFO_1544(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1545;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1545(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1545(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_initfiletable, NULL);
 
        return offset;
@@ -4572,11 +4934,11 @@ srvsvc_dissect_SERVER_INFO_1545(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1546;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1546(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1546(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_initsearchtable, NULL);
 
        return offset;
@@ -4588,11 +4950,11 @@ srvsvc_dissect_SERVER_INFO_1546(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1547;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1547(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1547(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_alertsched, NULL);
 
        return offset;
@@ -4604,11 +4966,11 @@ srvsvc_dissect_SERVER_INFO_1547(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1548;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1548(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1548(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_errortreshold, NULL);
 
        return offset;
@@ -4620,11 +4982,11 @@ srvsvc_dissect_SERVER_INFO_1548(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1549;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1549(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1549(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_networkerrortreshold, NULL);
 
        return offset;
@@ -4636,11 +4998,11 @@ srvsvc_dissect_SERVER_INFO_1549(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1550;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1550(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1550(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_diskspacetreshold, NULL);
 
        return offset;
@@ -4652,11 +5014,11 @@ srvsvc_dissect_SERVER_INFO_1550(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1552;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1552(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1552(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxlinkdelay, NULL);
 
        return offset;
@@ -4668,11 +5030,11 @@ srvsvc_dissect_SERVER_INFO_1552(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1553;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1553(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1553(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_minlinkthroughput, NULL);
 
        return offset;
@@ -4684,11 +5046,11 @@ srvsvc_dissect_SERVER_INFO_1553(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1554;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1554(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1554(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_linkinfovalidtime, NULL);
 
        return offset;
@@ -4700,11 +5062,11 @@ srvsvc_dissect_SERVER_INFO_1554(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1555;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1555(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1555(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_scavqosinfoupdatetime, NULL);
 
        return offset;
@@ -4716,11 +5078,11 @@ srvsvc_dissect_SERVER_INFO_1555(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_1556;
  */
 static int
-srvsvc_dissect_SERVER_INFO_1556(tvbuff_t *tvb, int offset, 
-                                  packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_1556(tvbuff_t *tvb, int offset,
+                                  packet_info *pinfo, proto_tree *tree,
                                   char *drep)
 {
-       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxworkitemidletime, NULL);
 
        return offset;
@@ -4790,8 +5152,8 @@ srvsvc_dissect_SERVER_INFO_1556(tvbuff_t *tvb, int offset,
  * IDL } SERVER_INFO_UNION;
  */
 static int
-srvsvc_dissect_SERVER_INFO_UNION(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_INFO_UNION(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        guint32 level;
@@ -5227,11 +5589,11 @@ srvsvc_dissect_SERVER_INFO_UNION(tvbuff_t *tvb, int offset,
  * IDL );
  */
 static int
-srvsvc_dissect_netrservergetinfo_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrservergetinfo_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Server",
                        hf_srvsvc_server, 0);
@@ -5242,36 +5604,35 @@ srvsvc_dissect_netrservergetinfo_rqst(tvbuff_t *tvb, int offset,
        return offset;
 }
 static int
-srvsvc_dissect_netrservergetinfo_reply(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrservergetinfo_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_SERVER_INFO_UNION,
                        NDR_POINTER_REF, "Server Info",
                        -1, 0);
 
-       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_rc, NULL);
 
        return offset;
 }
 
-/* XXX dont know the out parameters. only the in parameters.
- *
+/*
  * IDL long NetrServerSetInfo(
  * IDL      [in] [string] [unique] wchar_t *ServerName,
  * IDL      [in] long Level,
  * IDL      [in] [ref] SERVER_INFO_UNION *srv;
- * IDL      [in] [unique] long *ParamError;
+ * IDL      [in] [out] [unique] long *ParamError;
  * IDL );
  */
 static int
-srvsvc_dissect_netrserversetinfo_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrserversetinfo_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Server",
                        hf_srvsvc_server, 0);
@@ -5279,7 +5640,7 @@ srvsvc_dissect_netrserversetinfo_rqst(tvbuff_t *tvb, int offset,
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_info_level, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_SERVER_INFO_UNION,
                        NDR_POINTER_REF, "Server Info",
                        -1, 0);
@@ -5290,6 +5651,21 @@ srvsvc_dissect_netrserversetinfo_rqst(tvbuff_t *tvb, int offset,
 
        return offset;
 }
+static int
+srvsvc_dissect_netrserversetinfo_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
+                                    char *drep)
+{
+        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
+                       srvsvc_dissect_pointer_long, NDR_POINTER_UNIQUE,
+                       "Parameter Error:", hf_srvsvc_parm_error, 0);
+
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
+                       hf_srvsvc_rc, NULL);
+
+       return offset;
+}
+
 
 /*
  * IDL typedef struct {
@@ -5297,8 +5673,8 @@ srvsvc_dissect_netrserversetinfo_rqst(tvbuff_t *tvb, int offset,
  * IDL } DISK_INFO_0;
  */
 static int
-srvsvc_dissect_DISK_INFO_0(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_DISK_INFO_0(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        guint32 len;
@@ -5329,8 +5705,8 @@ srvsvc_dissect_DISK_INFO_0(tvbuff_t *tvb, int offset,
        return offset;
 }
 static int
-srvsvc_dissect_DISK_INFO_0_array(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_DISK_INFO_0_array(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep,
@@ -5346,8 +5722,8 @@ srvsvc_dissect_DISK_INFO_0_array(tvbuff_t *tvb, int offset,
  * IDL } DISK_ENUM_CONTAINER;
  */
 static int
-srvsvc_dissect_DISK_ENUM_CONTAINER(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_DISK_ENUM_CONTAINER(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
@@ -5361,22 +5737,22 @@ srvsvc_dissect_DISK_ENUM_CONTAINER(tvbuff_t *tvb, int offset,
 }
 
 
-/* XXX dont know the out parameters. only the in parameters.
- *
+/*
  * IDL long NetrServerDiskEnum(
  * IDL      [in] [string] [unique] wchar_t *ServerName,
  * IDL      [in] long Level,
- * IDL      [in] [ref] DISK_ENUM_CONTAINER *disk;
+ * IDL      [in] [out] [ref] DISK_ENUM_CONTAINER *disk;
  * IDL      [in] long maxlen,
- * IDL      [in] [unique] long *resumehandle,
+ * IDL      [out] long entries,
+ * IDL      [in] [out] [unique] long *resumehandle,
  * IDL );
  */
 static int
-srvsvc_dissect_netrserverdiskenum_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrserverdiskenum_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Server",
                        hf_srvsvc_server, 0);
@@ -5384,7 +5760,7 @@ srvsvc_dissect_netrserverdiskenum_rqst(tvbuff_t *tvb, int offset,
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_info_level, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_DISK_ENUM_CONTAINER,
                        NDR_POINTER_REF, "Disks",
                        -1, 0);
@@ -5398,27 +5774,121 @@ srvsvc_dissect_netrserverdiskenum_rqst(tvbuff_t *tvb, int offset,
 
        return offset;
 }
+static int
+srvsvc_dissect_netrserverdiskenum_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
+                                    char *drep)
+{
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
+                       srvsvc_dissect_DISK_ENUM_CONTAINER,
+                       NDR_POINTER_REF, "Disks",
+                       -1, 0);
 
-/* XXX dont know the out parameters. only the in parameters.
- *
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
+               hf_srvsvc_num_entries, NULL);
+
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
+               srvsvc_dissect_ENUM_HANDLE,
+               NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
+
+       return offset;
+}
+
+/*
+ * IDL typedef struct {
+ * IDL   long start;
+ * IDL   long fopens;
+ * IDL   long devopens;
+ * IDL   long jobsqueued;
+ * IDL   long sopens;
+ * IDL   long stimeouts;
+ * IDL   long serrorout;
+ * IDL   long pwerrors;
+ * IDL   long permerrors;
+ * IDL   long syserrors;
+ * IDL   long bytessent_low;
+ * IDL   long bytessent_high;
+ * IDL   long bytesrcvd_low;
+ * IDL   long bytesrcvd_high;
+ * IDL   long avresponse;
+ * IDL   long reqbufneed;
+ * IDL   long bigbufneed;
+ * IDL } SERVER_STAT;
+ */
+
+static int
+srvsvc_dissect_SERVER_STAT(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
+                                    char *drep)
+{
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
+               hf_srvsvc_server_stat_start, NULL);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
+               hf_srvsvc_server_stat_fopens, NULL);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
+               hf_srvsvc_server_stat_devopens, NULL);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
+               hf_srvsvc_server_stat_jobsqueued, NULL);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
+               hf_srvsvc_server_stat_sopens, NULL);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
+               hf_srvsvc_server_stat_stimeouts, NULL);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
+               hf_srvsvc_server_stat_serrorout, NULL);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
+               hf_srvsvc_server_stat_pwerrors, NULL);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
+               hf_srvsvc_server_stat_permerrors, NULL);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
+               hf_srvsvc_server_stat_syserrors, NULL);
+
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep,
+               hf_srvsvc_server_stat_bytessent, NULL);
+
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep,
+               hf_srvsvc_server_stat_bytesrcvd, NULL);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
+               hf_srvsvc_server_stat_avresponse, NULL);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
+               hf_srvsvc_server_stat_reqbufneed, NULL);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
+               hf_srvsvc_server_stat_bigbufneed, NULL);
+
+       return offset;
+}
+
+/*
  * IDL long NetrServerStatisticsGet(
  * IDL      [in] [string] [unique] wchar_t *ServerName,
  * IDL      [in] [string] [unique] wchar_t *Service,
  * IDL      [in] long Level,
  * IDL      [in] long Options,
+ * IDL      [out] [ref] SERVER_STAT *stat
  * IDL );
  */
 static int
-srvsvc_dissect_netrserverstatisticsget_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrserverstatisticsget_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Server",
                        hf_srvsvc_server, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Service",
                        hf_srvsvc_service, 0);
@@ -5431,7 +5901,21 @@ srvsvc_dissect_netrserverstatisticsget_rqst(tvbuff_t *tvb, int offset,
 
        return offset;
 }
+static int
+srvsvc_dissect_netrserverstatisticsget_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
+                                    char *drep)
+{
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
+                       srvsvc_dissect_SERVER_STAT,
+                       NDR_POINTER_REF, "Stat",
+                       -1, 0);
+
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
+                       hf_srvsvc_rc, NULL);
 
+       return offset;
+}
 
 /*
  * IDL typedef struct {
@@ -5439,8 +5923,8 @@ srvsvc_dissect_netrserverstatisticsget_rqst(tvbuff_t *tvb, int offset,
  * IDL } TRANSPORT_ADDRESS;
  */
 static int
-srvsvc_dissect_TRANSPORT_ADDRESS(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_TRANSPORT_ADDRESS(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        dcerpc_info *di;
@@ -5455,11 +5939,11 @@ srvsvc_dissect_TRANSPORT_ADDRESS(tvbuff_t *tvb, int offset,
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_srvsvc_transport_address_len, &len);
 
-       proto_tree_add_item(tree, hf_srvsvc_transport_address, tvb, offset, 
+       proto_tree_add_item(tree, hf_srvsvc_transport_address, tvb, offset,
                len, FALSE);
        offset += len;
 
-       return len;
+       return offset;
 }
 
 /*
@@ -5472,36 +5956,36 @@ srvsvc_dissect_TRANSPORT_ADDRESS(tvbuff_t *tvb, int offset,
  * IDL } TRANSPORT_INFO_0;
  */
 static int
-srvsvc_dissect_TRANSPORT_INFO_0(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_TRANSPORT_INFO_0(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
-               hf_srvsvc_transport_numberofvcs, 0);
+                       hf_srvsvc_transport_numberofvcs, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
-               srvsvc_dissect_pointer_UNICODE_STRING,
-               NDR_POINTER_UNIQUE, "Name",
-               hf_srvsvc_transport_name, 0);
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
+                       srvsvc_dissect_pointer_UNICODE_STRING,
+                       NDR_POINTER_UNIQUE, "Name",
+                       hf_srvsvc_transport_name, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_TRANSPORT_ADDRESS,
                        NDR_POINTER_UNIQUE, "Transport Address",
                        -1, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
-               hf_srvsvc_transport_address_len, 0);
+                       hf_srvsvc_transport_address_len, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
-               srvsvc_dissect_pointer_UNICODE_STRING,
-               NDR_POINTER_UNIQUE, "Network Address",
-               hf_srvsvc_transport_networkaddress, 0);
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
+                       srvsvc_dissect_pointer_UNICODE_STRING,
+                       NDR_POINTER_UNIQUE, "Network Address",
+                       hf_srvsvc_transport_networkaddress, 0);
 
        return offset;
 }
 static int
-srvsvc_dissect_TRANSPORT_INFO_0_array(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_TRANSPORT_INFO_0_array(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
@@ -5517,8 +6001,8 @@ srvsvc_dissect_TRANSPORT_INFO_0_array(tvbuff_t *tvb, int offset,
  * IDL } SERVER_XPORT_INFO_0_CONTAINER;
  */
 static int
-srvsvc_dissect_SERVER_XPORT_INFO_0_CONTAINER(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_XPORT_INFO_0_CONTAINER(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
@@ -5541,19 +6025,19 @@ srvsvc_dissect_SERVER_XPORT_INFO_0_CONTAINER(tvbuff_t *tvb, int offset,
  * IDL } TRANSPORT_INFO_1;
  */
 static int
-srvsvc_dissect_TRANSPORT_INFO_1(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_TRANSPORT_INFO_1(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_srvsvc_transport_numberofvcs, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Name",
                hf_srvsvc_transport_name, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_TRANSPORT_ADDRESS,
                        NDR_POINTER_UNIQUE, "Transport Address",
                        -1, 0);
@@ -5561,12 +6045,12 @@ srvsvc_dissect_TRANSPORT_INFO_1(tvbuff_t *tvb, int offset,
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_srvsvc_transport_address_len, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Network Address",
                hf_srvsvc_transport_networkaddress, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Domain",
                        hf_srvsvc_domain, 0);
@@ -5574,8 +6058,8 @@ srvsvc_dissect_TRANSPORT_INFO_1(tvbuff_t *tvb, int offset,
        return offset;
 }
 static int
-srvsvc_dissect_TRANSPORT_INFO_1_array(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_TRANSPORT_INFO_1_array(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
@@ -5591,8 +6075,8 @@ srvsvc_dissect_TRANSPORT_INFO_1_array(tvbuff_t *tvb, int offset,
  * IDL } SERVER_XPORT_INFO_1_CONTAINER;
  */
 static int
-srvsvc_dissect_SERVER_XPORT_INFO_1_CONTAINER(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_XPORT_INFO_1_CONTAINER(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
@@ -5613,8 +6097,8 @@ srvsvc_dissect_SERVER_XPORT_INFO_1_CONTAINER(tvbuff_t *tvb, int offset,
  * IDL } SERVER_XPORT_ENUM_UNION;
  */
 static int
-srvsvc_dissect_SERVER_XPORT_ENUM_UNION(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_XPORT_ENUM_UNION(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        guint32 level;
@@ -5648,8 +6132,8 @@ srvsvc_dissect_SERVER_XPORT_ENUM_UNION(tvbuff_t *tvb, int offset,
  * IDL } SERVER_XPORT_ENUM_STRUCT;
  */
 static int
-srvsvc_dissect_SERVER_XPORT_ENUM_STRUCT(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_SERVER_XPORT_ENUM_STRUCT(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
@@ -5662,8 +6146,7 @@ srvsvc_dissect_SERVER_XPORT_ENUM_STRUCT(tvbuff_t *tvb, int offset,
 }
 
 
-/* XXX dont know the out parameters. only the in parameters.
- *
+/*
  * IDL long NetrServerTransportAdd(
  * IDL      [in] [string] [unique] wchar_t *ServerName,
  * IDL      [in] long Level,
@@ -5671,11 +6154,11 @@ srvsvc_dissect_SERVER_XPORT_ENUM_STRUCT(tvbuff_t *tvb, int offset,
  * IDL );
  */
 static int
-srvsvc_dissect_netrservertransportadd_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrservertransportadd_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Server",
                        hf_srvsvc_server, 0);
@@ -5683,35 +6166,44 @@ srvsvc_dissect_netrservertransportadd_rqst(tvbuff_t *tvb, int offset,
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_srvsvc_info_level, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_TRANSPORT_INFO_0,
                        NDR_POINTER_REF, "Transports",
                        -1, 0);
 
        return offset;
 }
+static int
+srvsvc_dissect_netrservertransportadd_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
+                                    char *drep)
+{
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
+                       hf_srvsvc_rc, NULL);
 
+       return offset;
+}
 
-/* XXX dont know the out parameters. only the in parameters.
- *
+/*
  * IDL long NetrServerTransportEnum(
  * IDL      [in] [string] [unique] wchar_t *ServerName,
- * IDL      [in] [ref] SERVER_XPORT_ENUM_STRUCT *xport;
+ * IDL      [in] [out] [ref] SERVER_XPORT_ENUM_STRUCT *xport;
  * IDL      [in] long MaxLen,
- * IDL      [in] [unique] long *resumehandle;
+ * IDL      [out] long entries,
+ * IDL      [in] [out] [unique] long *resumehandle;
  * IDL );
  */
 static int
-srvsvc_dissect_netrservertransportenum_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrservertransportenum_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Server",
                        hf_srvsvc_server, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_SERVER_XPORT_ENUM_STRUCT,
                        NDR_POINTER_REF, "Transports",
                        -1, 0);
@@ -5725,9 +6217,31 @@ srvsvc_dissect_netrservertransportenum_rqst(tvbuff_t *tvb, int offset,
 
        return offset;
 }
+static int
+srvsvc_dissect_netrservertransportenum_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
+                                    char *drep)
+{
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
+                       srvsvc_dissect_SERVER_XPORT_ENUM_STRUCT,
+                       NDR_POINTER_REF, "Transports",
+                       -1, 0);
 
-/* XXX dont know the out parameters. only the in parameters.
- *
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
+               hf_srvsvc_num_entries, NULL);
+
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
+                       srvsvc_dissect_ENUM_HANDLE,
+                       NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
+
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
+                       hf_srvsvc_rc, NULL);
+
+       return offset;
+}
+
+
+/*
  * IDL long NetrServerTransportDel(
  * IDL      [in] [string] [unique] wchar_t *ServerName,
  * IDL      [in] long Level,
@@ -5735,11 +6249,11 @@ srvsvc_dissect_netrservertransportenum_rqst(tvbuff_t *tvb, int offset,
  * IDL );
  */
 static int
-srvsvc_dissect_netrservertransportdel_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrservertransportdel_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Server",
                        hf_srvsvc_server, 0);
@@ -5747,35 +6261,120 @@ srvsvc_dissect_netrservertransportdel_rqst(tvbuff_t *tvb, int offset,
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_srvsvc_info_level, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_TRANSPORT_INFO_0,
                        NDR_POINTER_REF, "Transports",
                        -1, 0);
 
        return offset;
 }
+static int
+srvsvc_dissect_netrservertransportdel_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
+                                    char *drep)
+{
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
+                       hf_srvsvc_rc, NULL);
+
+       return offset;
+}
 
-/* XXX dont know the out parameters. only the in parameters.
- *
+/*
+ * IDL typedef struct {
+ * IDL   long elapsed;
+ * IDL   long msecs;
+ * IDL   long hours;
+ * IDL   long mins;
+ * IDL   long secs;
+ * IDL   long hunds;
+ * IDL   long timezone;
+ * IDL   long tinterval;
+ * IDL   long day;
+ * IDL   long month;
+ * IDL   long year;
+ * IDL   long weekday;
+ * IDL } TIMEOFDAY;
+ */
+static int
+srvsvc_dissect_TIMEOFDAY(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
+                                    char *drep)
+{
+       /*
+        * XXX - is "hf_srvsvc_tod_elapsed" something that should be
+        * processed by "add_abstime_absent_unknown()" from
+        * "packet-smb-pipe.c"?  This structure looks similar
+        * to the result of a NetRemoteTOD RAP call, and that has
+        * a "current time" field that's processed by
+        * "add_abstime_absent_unknown()".
+        *
+        * Should other fields, such as the time zone offset and
+        * the time interval, be processed as they are for
+        * "lm_data_resp_netremotetod_nolevel" as well?
+        */
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
+               hf_srvsvc_tod_elapsed, NULL);
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
+               hf_srvsvc_tod_msecs, NULL);
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
+               hf_srvsvc_tod_hours, NULL);
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
+               hf_srvsvc_tod_mins, NULL);
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
+               hf_srvsvc_tod_secs, NULL);
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
+               hf_srvsvc_tod_hunds, NULL);
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
+               hf_srvsvc_tod_timezone, NULL);
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
+               hf_srvsvc_tod_tinterval, NULL);
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
+               hf_srvsvc_tod_day, NULL);
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
+               hf_srvsvc_tod_month, NULL);
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
+               hf_srvsvc_tod_year, NULL);
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
+               hf_srvsvc_tod_weekday, NULL);
+
+       return offset;
+}
+
+/*
  * IDL long NetrRemoteTOD(
  * IDL      [in] [string] [unique] wchar_t *ServerName,
+ * IDL      [out] [unique] TIMEOFDAY *t
  * IDL );
  */
 static int
-srvsvc_dissect_netrremotetod_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrremotetod_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Server",
                        hf_srvsvc_server, 0);
 
        return offset;
 }
+static int
+srvsvc_dissect_netrremotetod_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
+                                    char *drep)
+{
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
+                       srvsvc_dissect_TIMEOFDAY,
+                       NDR_POINTER_UNIQUE, "Time of day",
+                       -1, 0);
+
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
+                       hf_srvsvc_rc, NULL);
+
+       return offset;
+}
 
-/* XXX dont know the out parameters. only the in parameters.
- *
+/*
  * IDL long NetrSetServerServiceBits(
  * IDL      [in] [string] [unique] wchar_t *ServerName,
  * IDL      [in] [string] [unique] wchar_t *Transport,
@@ -5784,16 +6383,16 @@ srvsvc_dissect_netrremotetod_rqst(tvbuff_t *tvb, int offset,
  * IDL );
  */
 static int
-srvsvc_dissect_netrsetserverservicebits_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrsetserverservicebits_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Server",
                        hf_srvsvc_server, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_pointer_UNICODE_STRING,
                NDR_POINTER_UNIQUE, "Transport:",
                hf_srvsvc_transport, 0);
@@ -5806,26 +6405,36 @@ srvsvc_dissect_netrsetserverservicebits_rqst(tvbuff_t *tvb, int offset,
 
        return offset;
 }
+static int
+srvsvc_dissect_netrsetserverservicebits_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
+                                    char *drep)
+{
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
+                       hf_srvsvc_rc, NULL);
 
-/* XXX dont know the out parameters. only the in parameters.
- *
+       return offset;
+}
+
+/*
  * IDL long NetrPathType(
  * IDL      [in] [string] [unique] wchar_t *ServerName,
  * IDL      [in] [string] [ref] wchar_t *PathName,
  * IDL      [in] long PathFlags;
+ * IDL      [out] long PathType;
  * IDL );
  */
 static int
-srvsvc_dissect_netrpathtype_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrpathtype_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Server",
                        hf_srvsvc_server, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_REF, "Path:",
                        hf_srvsvc_path, 0);
@@ -5835,29 +6444,41 @@ srvsvc_dissect_netrpathtype_rqst(tvbuff_t *tvb, int offset,
 
        return offset;
 }
+static int
+srvsvc_dissect_netrpathtype_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
+                                    char *drep)
+{
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
+                       hf_srvsvc_path_type, NULL);
+
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
+                       hf_srvsvc_rc, NULL);
+
+       return offset;
+}
 
-/* XXX dont know the out parameters. only the in parameters.
- *
+/*
  * IDL long NetrPathCanonicalize(
  * IDL      [in] [string] [unique] wchar_t *ServerName,
  * IDL      [in] [string] [ref] wchar_t *PathName,
  * IDL      [in] long OutBufLen;
  * IDL      [in] [string] [ref] wchar_t *Prefix,
- * IDL      [in] long PathType;
+ * IDL      [in] [out] [ref] long *PathType;
  * IDL      [in] long PathFlags;
  * IDL );
  */
 static int
-srvsvc_dissect_netrpathcanonicalize_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrpathcanonicalize_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Server",
                        hf_srvsvc_server, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_REF, "Path:",
                        hf_srvsvc_path, 0);
@@ -5865,7 +6486,7 @@ srvsvc_dissect_netrpathcanonicalize_rqst(tvbuff_t *tvb, int offset,
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_outbuflen, NULL);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_REF, "Prefix:",
                        hf_srvsvc_prefix, 0);
@@ -5878,9 +6499,50 @@ srvsvc_dissect_netrpathcanonicalize_rqst(tvbuff_t *tvb, int offset,
 
        return offset;
 }
+static int
+srvsvc_dissect_netrpathcanonicalize_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
+                                    char *drep)
+{
+       guint32 len;
+       dcerpc_info *di;
+       int old_offset;
+       int data16_offset;
+       char *text;
 
-/* XXX dont know the out parameters. only the in parameters.
- *
+       di=pinfo->private_data;
+       if(di->conformant_run){
+               /* this call is to make ethereal eat the array header for the conformant run */
+               offset =dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, NULL);
+
+               return offset;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
+               hf_srvsvc_path_len, &len);
+
+       old_offset=offset;
+       offset = prs_uint16s(tvb, offset, pinfo, tree, len, &data16_offset,
+                       NULL);
+       text = fake_unicode(tvb, data16_offset, len);
+
+       proto_tree_add_string(tree, hf_srvsvc_path, tvb, old_offset,
+               offset-old_offset, text);
+
+       g_free(text);
+
+
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
+                       hf_srvsvc_path_type, NULL);
+
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
+                       hf_srvsvc_rc, NULL);
+
+       return offset;
+}
+
+
+/*
  * IDL long NetrPathCompare(
  * IDL      [in] [string] [unique] wchar_t *ServerName,
  * IDL      [in] [string] [ref] wchar_t *PathName1,
@@ -5890,21 +6552,21 @@ srvsvc_dissect_netrpathcanonicalize_rqst(tvbuff_t *tvb, int offset,
  * IDL );
  */
 static int
-srvsvc_dissect_netrpathcompare_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrpathcompare_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Server",
                        hf_srvsvc_server, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_REF, "Path 1:",
                        hf_srvsvc_path, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_REF, "Path 2:",
                        hf_srvsvc_path, 0);
@@ -5917,9 +6579,19 @@ srvsvc_dissect_netrpathcompare_rqst(tvbuff_t *tvb, int offset,
 
        return offset;
 }
+static int
+srvsvc_dissect_netrpathcompare_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
+                                    char *drep)
+{
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
+                       hf_srvsvc_rc, NULL);
 
-/* XXX dont know the out parameters. only the in parameters.
- *
+       return offset;
+}
+
+
+/*
  * IDL long NetrNameValidate(
  * IDL      [in] [string] [unique] wchar_t *ServerName,
  * IDL      [in] [string] [ref] wchar_t *PathName,
@@ -5928,16 +6600,16 @@ srvsvc_dissect_netrpathcompare_rqst(tvbuff_t *tvb, int offset,
  * IDL );
  */
 static int
-srvsvc_dissect_netrnamevalidate_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrnamevalidate_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Server",
                        hf_srvsvc_server, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_REF, "Path:",
                        hf_srvsvc_path, 0);
@@ -5950,28 +6622,38 @@ srvsvc_dissect_netrnamevalidate_rqst(tvbuff_t *tvb, int offset,
 
        return offset;
 }
+static int
+srvsvc_dissect_netrnamevalidate_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
+                                    char *drep)
+{
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
+                       hf_srvsvc_rc, NULL);
+
+       return offset;
+}
 
-/* XXX dont know the out parameters. only the in parameters.
- *
+/*
  * IDL long NetrNameCanonicalize(
  * IDL      [in] [string] [unique] wchar_t *ServerName,
  * IDL      [in] [string] [ref] wchar_t *PathName,
- * IDL      [in] long OutBufLen;
- * IDL      [in] long PathType;
- * IDL      [in] long PathFlags;
+ * IDL      [in] long OutBufLen,
+ * IDL      [in] long PathType,
+ * IDL      [in] long PathFlags,
+ * IDL      [out] [ref] *PathName
  * IDL );
  */
 static int
-srvsvc_dissect_netrnamecanonicalize_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrnamecanonicalize_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Server",
                        hf_srvsvc_server, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_REF, "Path:",
                        hf_srvsvc_path, 0);
@@ -5987,9 +6669,46 @@ srvsvc_dissect_netrnamecanonicalize_rqst(tvbuff_t *tvb, int offset,
 
        return offset;
 }
+static int
+srvsvc_dissect_netrnamecanonicalize_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
+                                    char *drep)
+{
+       guint32 len;
+       dcerpc_info *di;
+       int old_offset;
+       int data16_offset;
+       char *text;
 
-/* XXX dont know the out parameters. only the in parameters.
- *
+       di=pinfo->private_data;
+       if(di->conformant_run){
+               /* this call is to make ethereal eat the array header for the conformant run */
+               offset =dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, NULL);
+
+               return offset;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
+               hf_srvsvc_path_len, &len);
+
+       old_offset=offset;
+       offset = prs_uint16s(tvb, offset, pinfo, tree, len, &data16_offset,
+                       NULL);
+       text = fake_unicode(tvb, data16_offset, len);
+
+       proto_tree_add_string(tree, hf_srvsvc_path, tvb, old_offset,
+               offset-old_offset, text);
+
+       g_free(text);
+
+
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
+                       hf_srvsvc_rc, NULL);
+
+       return offset;
+}
+
+
+/*
  * IDL long NetrNameCompare(
  * IDL      [in] [string] [unique] wchar_t *ServerName,
  * IDL      [in] [string] [ref] wchar_t *PathName1,
@@ -5999,21 +6718,21 @@ srvsvc_dissect_netrnamecanonicalize_rqst(tvbuff_t *tvb, int offset,
  * IDL );
  */
 static int
-srvsvc_dissect_netrnamecompare_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrnamecompare_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Server",
                        hf_srvsvc_server, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_REF, "Path 1:",
                        hf_srvsvc_path, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_REF, "Path 2:",
                        hf_srvsvc_path, 0);
@@ -6026,22 +6745,33 @@ srvsvc_dissect_netrnamecompare_rqst(tvbuff_t *tvb, int offset,
 
        return offset;
 }
+static int
+srvsvc_dissect_netrnamecompare_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
+                                    char *drep)
+{
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
+                       hf_srvsvc_rc, NULL);
+
+       return offset;
+}
 
-/* XXX dont know the out parameters. only the in parameters.
- *
+
+/*
  * IDL long NetrShareEnumSticky(
  * IDL      [in] [string] [unique] wchar_t *ServerName,
- * IDL      [in] [ref] SHARE_ENUM_STRUCT *share,
+ * IDL      [in] [out] [ref] SHARE_ENUM_STRUCT *share,
  * IDL      [in] long MaxLen,
- * IDL      [in] [unique] *ResumeHandle
+ * IDL      [out] long Entries,
+ * IDL      [in] [out] [unique] *ResumeHandle
  * IDL );
  */
 static int
-srvsvc_dissect_netrshareenumsticky_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrshareenumsticky_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Server",
                        hf_srvsvc_server, 0);
@@ -6060,53 +6790,102 @@ srvsvc_dissect_netrshareenumsticky_rqst(tvbuff_t *tvb, int offset,
 
        return offset;
 }
+static int
+srvsvc_dissect_netrshareenumsticky_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
+                                    char *drep)
+{
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
+                       srvsvc_dissect_SHARE_ENUM_STRUCT,
+                       NDR_POINTER_REF, "Shares",
+                       -1, 0);
 
-/* XXX dont know the out parameters. only the in parameters.
- *
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
+               hf_srvsvc_num_entries, NULL);
+
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
+                       srvsvc_dissect_ENUM_HANDLE,
+                       NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
+
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
+                       hf_srvsvc_rc, NULL);
+
+       return offset;
+}
+
+
+/*
  * IDL long NetrShareDelStart(
  * IDL      [in] [string] [unique] wchar_t *ServerName,
  * IDL      [in] [string] [ref] wchar_t *Share,
- * IDL      long reserved;
+ * IDL      [in] long reserved,
+ * IDL      [out] [context_handle] hnd
  * IDL );
  */
 static int
-srvsvc_dissect_netrsharedelstart_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrsharedelstart_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Server",
                        hf_srvsvc_server, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_REF, "Share",
                        hf_srvsvc_share, 0);
 
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                                      hf_srvsvc_reserved, NULL);
-       
+
+       return offset;
+}
+static int
+srvsvc_dissect_netrsharedelstart_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
+                                    char *drep)
+{
+        offset = dissect_nt_policy_hnd(tvb, offset, pinfo, tree, drep,
+                                      hf_srvsvc_hnd, NULL, TRUE, FALSE);
+
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
+                       hf_srvsvc_rc, NULL);
+
        return offset;
 }
 
-/* XXX dont know the out parameters. only the in parameters.
- *
+/*
  * IDL long NetrShareDelCommit(
- * IDL     [in] contect_handle
+ * IDL     [in] [out] [contect_handle] h
  * IDL );
  */
 static int
-srvsvc_dissect_netrsharedelcommit_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrsharedelcommit_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
+                                    char *drep)
+{
+        offset = dissect_nt_policy_hnd(tvb, offset, pinfo, tree, drep,
+                                      hf_srvsvc_hnd, NULL, TRUE, FALSE);
+
+       return offset;
+}
+static int
+srvsvc_dissect_netrsharedelcommit_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
         offset = dissect_nt_policy_hnd(tvb, offset, pinfo, tree, drep,
                                       hf_srvsvc_hnd, NULL, TRUE, FALSE);
 
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
+                       hf_srvsvc_rc, NULL);
+
        return offset;
 }
 
+
 /* XXX dont know the out parameters. only the in parameters.
  *
  * IDL long NetrGetFileSecurity(
@@ -6114,24 +6893,25 @@ srvsvc_dissect_netrsharedelcommit_rqst(tvbuff_t *tvb, int offset,
  * IDL      [in] [string] [unique] wchar_t *Share,
  * IDL      [in] [string] [ref] wchar_t *File,
  * IDL      [in] long requetedinformation
+ * IDL      [out] [ref] SECDESC *securitysecriptor; 4byte-len followed by bytestring
  * IDL );
  */
 static int
-srvsvc_dissect_netrgetfilesecurity_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrgetfilesecurity_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Server",
                        hf_srvsvc_server, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Share",
                        hf_srvsvc_share, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_REF, "Path",
                        hf_srvsvc_path, 0);
@@ -6142,9 +6922,23 @@ srvsvc_dissect_netrgetfilesecurity_rqst(tvbuff_t *tvb, int offset,
 
        return offset;
 }
+static int
+srvsvc_dissect_netrgetfilesecurity_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
+                                    char *drep)
+{
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
+                       lsa_dissect_LSA_SECURITY_DESCRIPTOR_data, NDR_POINTER_REF,
+                       "LSA SECURITY DESCRIPTOR data:", -1, 0);
 
-/* XXX dont know the out parameters. only the in parameters.
- *
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
+                       hf_srvsvc_rc, NULL);
+
+       return offset;
+}
+
+
+/*
  * IDL long NetrSetFileSecurity(
  * IDL      [in] [string] [unique] wchar_t *ServerName,
  * IDL      [in] [string] [unique] wchar_t *Share,
@@ -6154,21 +6948,21 @@ srvsvc_dissect_netrgetfilesecurity_rqst(tvbuff_t *tvb, int offset,
  * IDL );
  */
 static int
-srvsvc_dissect_netrsetfilesecurity_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrsetfilesecurity_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Server",
                        hf_srvsvc_server, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Share",
                        hf_srvsvc_share, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_REF, "Path",
                        hf_srvsvc_path, 0);
@@ -6183,9 +6977,19 @@ srvsvc_dissect_netrsetfilesecurity_rqst(tvbuff_t *tvb, int offset,
 
        return offset;
 }
+static int
+srvsvc_dissect_netrsetfilesecurity_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
+                                    char *drep)
+{
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
+                       hf_srvsvc_rc, NULL);
 
-/* XXX dont know the out parameters. only the in parameters.
- *
+       return offset;
+}
+
+
+/*
  * IDL long NetrServerTransportAddEx(
  * IDL      [in] [string] [unique] wchar_t *ServerName,
  * IDL      [in] long Level
@@ -6193,11 +6997,11 @@ srvsvc_dissect_netrsetfilesecurity_rqst(tvbuff_t *tvb, int offset,
  * IDL );
  */
 static int
-srvsvc_dissect_netrservertransportaddex_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrservertransportaddex_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Server",
                        hf_srvsvc_server, 0);
@@ -6205,16 +7009,26 @@ srvsvc_dissect_netrservertransportaddex_rqst(tvbuff_t *tvb, int offset,
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_info_level, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_SERVER_XPORT_ENUM_STRUCT,
                        NDR_POINTER_REF, "Transports",
                        -1, 0);
 
        return offset;
 }
+static int
+srvsvc_dissect_netrservertransportaddex_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
+                                    char *drep)
+{
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
+                       hf_srvsvc_rc, NULL);
 
-/* XXX dont know the out parameters. only the in parameters.
- *
+       return offset;
+}
+
+
+/*
  * IDL long NetrServerSetServiceBits2(
  * IDL      [in] [string] [unique] wchar_t *ServerName,
  * IDL      [in] [string] [unique] wchar_t *EmulatedServerName,
@@ -6225,21 +7039,21 @@ srvsvc_dissect_netrservertransportaddex_rqst(tvbuff_t *tvb, int offset,
  * IDL );
  */
 static int
-srvsvc_dissect_netrserversetservicebits2_rqst(tvbuff_t *tvb, int offset, 
-                                    packet_info *pinfo, proto_tree *tree, 
+srvsvc_dissect_netrserversetservicebits2_rqst(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
                                     char *drep)
 {
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Server",
                        hf_srvsvc_server, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Emulated Server",
                        hf_srvsvc_emulated_server, 0);
 
-       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, 
+       offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_pointer_UNICODE_STRING,
                        NDR_POINTER_UNIQUE, "Transport:",
                        hf_srvsvc_transport, 0);
@@ -6255,11 +7069,23 @@ srvsvc_dissect_netrserversetservicebits2_rqst(tvbuff_t *tvb, int offset,
 
        return offset;
 }
+static int
+srvsvc_dissect_netrserversetservicebits2_reply(tvbuff_t *tvb, int offset,
+                                    packet_info *pinfo, proto_tree *tree,
+                                    char *drep)
+{
+       offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
+                       hf_srvsvc_rc, NULL);
 
+       return offset;
+}
 
 
 
 
+/*
+  IDL }
+*/
 static dcerpc_sub_dissector dcerpc_srvsvc_dissectors[] = {
        {SRV_NETRCHARDEVENUM,           "NetrCharDevEnum",
                srvsvc_dissect_netrchardevenum_rqst,
@@ -6314,82 +7140,82 @@ static dcerpc_sub_dissector dcerpc_srvsvc_dissectors[] = {
                srvsvc_dissect_netrsharegetinfo_reply},
        {SRV_NETRSHARESETINFO,          "NetrShareSetInfo",
                srvsvc_dissect_netrsharesetinfo_rqst,
-               NULL},
+               srvsvc_dissect_netrsharesetinfo_reply},
        {SRV_NETRSHAREDEL,              "NetrShareDel",
                srvsvc_dissect_netrsharedel_rqst,
-               NULL},
+               srvsvc_dissect_netrsharedel_reply},
        {SRV_NETRSHAREDELSTICKY,        "NetrShareDelSticky",
                srvsvc_dissect_netrsharedelsticky_rqst,
-               NULL},
+               srvsvc_dissect_netrsharedelsticky_reply},
        {SRV_NETRSHARECHECK,            "NetrShareCheck",
                srvsvc_dissect_netrsharecheck_rqst,
-               NULL},
+               srvsvc_dissect_netrsharecheck_reply},
        {SRV_NETRSERVERGETINFO,         "NetrServerGetInfo",
-               srvsvc_dissect_netrservergetinfo_rqst, 
+               srvsvc_dissect_netrservergetinfo_rqst,
                srvsvc_dissect_netrservergetinfo_reply},
        {SRV_NETRSERVERSETINFO,         "NetrServerSetInfo",
-               srvsvc_dissect_netrserversetinfo_rqst, 
-               NULL},
+               srvsvc_dissect_netrserversetinfo_rqst,
+               srvsvc_dissect_netrserversetinfo_reply},
        {SRV_NETRSERVERDISKENUM,        "NetrServerDiskEnum",
-               srvsvc_dissect_netrserverdiskenum_rqst, 
-               NULL},
+               srvsvc_dissect_netrserverdiskenum_rqst,
+               srvsvc_dissect_netrserverdiskenum_reply},
        {SRV_NETRSERVERSTATISTICSGET,   "NetrServerStatisticsGet",
-               srvsvc_dissect_netrserverstatisticsget_rqst, 
-               NULL},
+               srvsvc_dissect_netrserverstatisticsget_rqst,
+               srvsvc_dissect_netrserverstatisticsget_reply},
        {SRV_NETRSERVERTRANSPORTADD,    "NetrServerTransportAdd",
-               srvsvc_dissect_netrservertransportadd_rqst, 
-               NULL},
+               srvsvc_dissect_netrservertransportadd_rqst,
+               srvsvc_dissect_netrservertransportadd_reply},
        {SRV_NETRSERVERTRANSPORTENUM,   "NetrServerTransportEnum",
-               srvsvc_dissect_netrservertransportenum_rqst, 
-               NULL},
+               srvsvc_dissect_netrservertransportenum_rqst,
+               srvsvc_dissect_netrservertransportenum_reply},
        {SRV_NETRSERVERTRANSPORTDEL,    "NetrServerTransportDel",
-               srvsvc_dissect_netrservertransportdel_rqst, 
-               NULL},
+               srvsvc_dissect_netrservertransportdel_rqst,
+               srvsvc_dissect_netrservertransportdel_reply},
        {SRV_NETRREMOTETOD,             "NetrRemoteTOD",
-               srvsvc_dissect_netrremotetod_rqst, 
-               NULL},
+               srvsvc_dissect_netrremotetod_rqst,
+               srvsvc_dissect_netrremotetod_reply},
        {SRV_NETRSERVERSETSERVICEBITS,  "NetrServerSetServiceBits",
-               srvsvc_dissect_netrsetserverservicebits_rqst, 
-               NULL},
+               srvsvc_dissect_netrsetserverservicebits_rqst,
+               srvsvc_dissect_netrsetserverservicebits_reply},
        {SRV_NETRPRPATHTYPE,            "NetrPathType",
-               srvsvc_dissect_netrpathtype_rqst, 
-               NULL},
+               srvsvc_dissect_netrpathtype_rqst,
+               srvsvc_dissect_netrpathtype_reply},
        {SRV_NETRPRPATHCANONICALIZE,    "NetrpPathCanonicalize",
-               srvsvc_dissect_netrpathcanonicalize_rqst, 
-               NULL},
+               srvsvc_dissect_netrpathcanonicalize_rqst,
+               srvsvc_dissect_netrpathcanonicalize_reply},
        {SRV_NETRPRPATHCOMPARE,         "NetrpPathCompare",
-               srvsvc_dissect_netrpathcompare_rqst, 
-               NULL},
+               srvsvc_dissect_netrpathcompare_rqst,
+               srvsvc_dissect_netrpathcompare_reply},
        {SRV_NETRPRNAMEVALIDATE,        "NetrpNameValidate",
-               srvsvc_dissect_netrnamevalidate_rqst, 
-               NULL},
+               srvsvc_dissect_netrnamevalidate_rqst,
+               srvsvc_dissect_netrnamevalidate_reply},
        {SRV_NETRPRNAMECANONICALIZE,    "NetrpNameCanonicalize",
-               srvsvc_dissect_netrnamecanonicalize_rqst, 
-               NULL},
+               srvsvc_dissect_netrnamecanonicalize_rqst,
+               srvsvc_dissect_netrnamecanonicalize_reply},
        {SRV_NETRPRNAMECOMPARE,         "NetrpNameCompare",
-               srvsvc_dissect_netrnamecompare_rqst, 
-               NULL},
+               srvsvc_dissect_netrnamecompare_rqst,
+               srvsvc_dissect_netrnamecompare_reply},
        {SRV_NETRSHAREENUMSTICKY,       "NetrShareEnumSticky",
-               srvsvc_dissect_netrshareenumsticky_rqst, 
-               NULL},
+               srvsvc_dissect_netrshareenumsticky_rqst,
+               srvsvc_dissect_netrshareenumsticky_reply},
        {SRV_NETRSHAREDELSTART,         "NetrShareDelStart",
-               srvsvc_dissect_netrsharedelstart_rqst, 
-               NULL},
+               srvsvc_dissect_netrsharedelstart_rqst,
+               srvsvc_dissect_netrsharedelstart_reply},
        {SRV_NETRSHAREDELCOMMIT,        "NetrShareDelCommit",
-               srvsvc_dissect_netrsharedelcommit_rqst, 
-               NULL},
+               srvsvc_dissect_netrsharedelcommit_rqst,
+               srvsvc_dissect_netrsharedelcommit_reply},
        {SRV_NETRPGETFILESECURITY,      "NetrpGetFileSecurity",
-               srvsvc_dissect_netrgetfilesecurity_rqst, 
-               NULL},
+               srvsvc_dissect_netrgetfilesecurity_rqst,
+               srvsvc_dissect_netrgetfilesecurity_reply},
        {SRV_NETRPSETFILESECURITY,      "NetrpSetFileSecurity",
-               srvsvc_dissect_netrsetfilesecurity_rqst, 
-               NULL},
+               srvsvc_dissect_netrsetfilesecurity_rqst,
+               srvsvc_dissect_netrsetfilesecurity_reply},
        {SRV_NETRSERVERTRANSPORTADDEX,  "NetrServerTransportAddEx",
-               srvsvc_dissect_netrservertransportaddex_rqst, 
-               NULL},
+               srvsvc_dissect_netrservertransportaddex_rqst,
+               srvsvc_dissect_netrservertransportaddex_reply},
        {SRV_NETRSERVERSETSERVICEBITS2, "NetrServerSetServiceBits2",
-               srvsvc_dissect_netrserversetservicebits2_rqst, 
-               NULL},
+               srvsvc_dissect_netrserversetservicebits2_rqst,
+               srvsvc_dissect_netrserversetservicebits2_reply},
        {0, NULL, NULL, NULL}
 };
 
@@ -6402,10 +7228,60 @@ static const value_string platform_id_vals[] = {
        { 0,   NULL }
 };
 
-void 
+static const value_string srvsvc_opnum_vals[] = {
+       {SRV_NETRCHARDEVENUM,           "NetrCharDevEnum" },
+       {SRV_NETRCHARDEVGETINFO,        "NetrCharDevGetInfo" },
+       {SRV_NETRCHARDEVCONTROL,        "NetrCharDevControl" },
+       {SRV_NETRCHARDEVQENUM,          "NetrCharDevQEnum" },
+       {SRV_NETRCHARDEVQGETINFO,       "NetrCharDevQGetInfo" },
+       {SRV_NETRCHARDEVQSETINFO,       "NetrCharDevQSetInfo" },
+       {SRV_NETRCHARDEVQPURGE,         "NetrCharDevQPurge" },
+       {SRV_NETRCHARDEVQPURGESELF,     "NetrCharDevQPurgeSelf" },
+       {SRV_NETRCONNECTIONENUM,        "NetrConnectionEnum" },
+       {SRV_NETRFILEENUM,              "NetrFileEnum" },
+       {SRV_NETRFILEGETINFO,           "NetrFileGetInfo" },
+       {SRV_NETRFILECLOSE,             "NetrFileClose" },
+       {SRV_NETRSESSIONENUM,           "NetrSessionEnum" },
+       {SRV_NETRSESSIONDEL,            "NetrSessionDel" },
+       {SRV_NETRSHAREADD,              "NetrShareAdd" },
+       {SRV_NETRSHAREENUM,             "NetrShareEnum" },
+       {SRV_NETRSHAREGETINFO,          "NetrShareGetInfo" },
+       {SRV_NETRSHARESETINFO,          "NetrShareSetInfo" },
+       {SRV_NETRSHAREDEL,              "NetrShareDel" },
+       {SRV_NETRSHAREDELSTICKY,        "NetrShareDelSticky" },
+       {SRV_NETRSHARECHECK,            "NetrShareCheck" },
+       {SRV_NETRSERVERGETINFO,         "NetrServerGetInfo" },
+       {SRV_NETRSERVERSETINFO,         "NetrServerSetInfo" },
+       {SRV_NETRSERVERDISKENUM,        "NetrServerDiskEnum" },
+       {SRV_NETRSERVERSTATISTICSGET,   "NetrServerStatisticsGet" },
+       {SRV_NETRSERVERTRANSPORTADD,    "NetrServerTransportAdd" },
+       {SRV_NETRSERVERTRANSPORTENUM,   "NetrServerTransportEnum" },
+       {SRV_NETRSERVERTRANSPORTDEL,    "NetrServerTransportDel" },
+       {SRV_NETRREMOTETOD,             "NetrRemoteTOD" },
+       {SRV_NETRSERVERSETSERVICEBITS,  "NetrServerSetServiceBits" },
+       {SRV_NETRPRPATHTYPE,            "NetrPathType" },
+       {SRV_NETRPRPATHCANONICALIZE,    "NetrpPathCanonicalize" },
+       {SRV_NETRPRPATHCOMPARE,         "NetrpPathCompare" },
+       {SRV_NETRPRNAMEVALIDATE,        "NetrpNameValidate" },
+       {SRV_NETRPRNAMECANONICALIZE,    "NetrpNameCanonicalize" },
+       {SRV_NETRPRNAMECOMPARE,         "NetrpNameCompare" },
+       {SRV_NETRSHAREENUMSTICKY,       "NetrShareEnumSticky" },
+       {SRV_NETRSHAREDELSTART,         "NetrShareDelStart" },
+       {SRV_NETRSHAREDELCOMMIT,        "NetrShareDelCommit" },
+       {SRV_NETRPGETFILESECURITY,      "NetrpGetFileSecurity" },
+       {SRV_NETRPSETFILESECURITY,      "NetrpSetFileSecurity" },
+       {SRV_NETRSERVERTRANSPORTADDEX,  "NetrServerTransportAddEx" },
+       {SRV_NETRSERVERSETSERVICEBITS2, "NetrServerSetServiceBits2" },
+       {0, NULL }
+};
+
+void
 proto_register_dcerpc_srvsvc(void)
 {
         static hf_register_info hf[] = {
+         { &hf_srvsvc_opnum,
+           { "Operation", "srvsvc.opnum", FT_UINT16, BASE_DEC,
+             VALS(srvsvc_opnum_vals), 0x0, "Operation", HFILL }},
          { &hf_srvsvc_server,
            { "Server", "srvsvc.server", FT_STRING, BASE_NONE,
            NULL, 0x0, "Server Name", HFILL}},
@@ -6445,6 +7321,9 @@ proto_register_dcerpc_srvsvc(void)
          { &hf_srvsvc_share_passwd,
            { "Share Passwd", "srvsvc.share_passwd", FT_STRING, BASE_NONE,
            NULL, 0x0, "Password for this share", HFILL}},
+         { &hf_srvsvc_share_alternate_name,
+           { "Alternate Name", "srvsvc.share_alternate_name", FT_STRING, BASE_NONE,
+           NULL, 0x0, "Alternate name for this share", HFILL}},
          { &hf_srvsvc_chrdev_status,
            { "Status", "srvsvc.chrdev_status", FT_UINT32, BASE_HEX,
            NULL, 0x0, "Char Device Status", HFILL}},
@@ -6464,11 +7343,11 @@ proto_register_dcerpc_srvsvc(void)
            { "Time", "srvsvc.chrdev_time", FT_UINT32, BASE_DEC,
            NULL, 0x0, "Char Device Time?", HFILL}},
          { &hf_srvsvc_info_level,
-           { "Info Level", "svrsvc.info_level", FT_UINT32, 
+           { "Info Level", "svrsvc.info_level", FT_UINT32,
            BASE_DEC, NULL, 0x0, "Info Level", HFILL}},
          { &hf_srvsvc_rc,
-           { "Return code", "srvsvc.rc", FT_UINT32, 
-             BASE_HEX, VALS(NT_errors), 0x0, "Return Code", HFILL}},
+           { "Return code", "srvsvc.rc", FT_UINT32,
+             BASE_HEX, VALS(DOS_errors), 0x0, "Return Code", HFILL}},
 
          { &hf_srvsvc_platform_id,
            { "Platform ID", "srvsvc.info.platform_id", FT_UINT32,
@@ -6479,14 +7358,16 @@ proto_register_dcerpc_srvsvc(void)
          { &hf_srvsvc_ver_minor,
            { "Minor Version", "srvsvc.version.minor", FT_UINT32,
              BASE_DEC, NULL, 0x0, "Minor Version", HFILL}},
-         /* XXX - Should break this out. We know it from browsing. */
+         /* XXX - Should break this out. We know it from browsing.
+            See "dissect_smb_server_type_flags()"
+            in "packet-smb-browse.c" */
          { &hf_srvsvc_server_type,
            { "Server Type", "srvsvc.server.type", FT_UINT32,
              BASE_HEX, NULL, 0x0, "Server Type", HFILL}},
          { &hf_srvsvc_client_type,
-           { "Client Type", "srvsvc.Client.type", FT_STRING,
+           { "Client Type", "srvsvc.client.type", FT_STRING,
              BASE_NONE, NULL, 0x0, "Client Type", HFILL}},
-         { &hf_srvsvc_comment, 
+         { &hf_srvsvc_comment,
            { "Comment", "srvsvc.comment", FT_STRING,
              BASE_NONE, NULL, 0x0, "Comment", HFILL}},
          { &hf_srvsvc_users,
@@ -6513,11 +7394,11 @@ proto_register_dcerpc_srvsvc(void)
          { &hf_srvsvc_user_path,
            { "User Path", "srvsvc.user_path", FT_STRING,
              BASE_NONE, NULL, 0x0, "User Path", HFILL}},
-         { &hf_srvsvc_share, 
+         { &hf_srvsvc_share,
            { "Share", "srvsvc.share", FT_STRING,
              BASE_NONE, NULL, 0x0, "Share", HFILL}},
          { &hf_srvsvc_share_type,
-           { "Share Type", "srvsvc.share_type", FT_UINT32, 
+           { "Share Type", "srvsvc.share_type", FT_UINT32,
              BASE_HEX, VALS(share_type_vals), 0x0, "Share Type", HFILL}},
          { &hf_srvsvc_file_id,
            { "File ID", "srvsvc.file_id", FT_UINT32,
@@ -6525,6 +7406,12 @@ proto_register_dcerpc_srvsvc(void)
          { &hf_srvsvc_perm,
            { "Permissions", "srvsvc.perm", FT_UINT32,
              BASE_HEX, NULL, 0x0, "Permissions", HFILL}},
+         { &hf_srvsvc_dfs_root_flags,
+           { "DFS Root Flags", "srvsvc.dfs_root_flags", FT_UINT32,
+             BASE_HEX, NULL, 0x0, "DFS Root Flags. Contact ethereal developers if you know what the bits are", HFILL}},
+         { &hf_srvsvc_policy,
+           { "Policy", "srvsvc.policy", FT_UINT32,
+             BASE_HEX, NULL, 0x0, "Policy", HFILL}},
          { &hf_srvsvc_file_num_locks,
            { "Num Locks", "srvsvc.file_num_locks", FT_UINT32,
              BASE_DEC, NULL, 0x0, "Number of locks for file", HFILL}},
@@ -6669,7 +7556,7 @@ proto_register_dcerpc_srvsvc(void)
          { &hf_srvsvc_parm_error,
            { "Parameter Error", "srvsvc.parm_error", FT_UINT32,
              BASE_DEC, NULL, 0x0, "Parameter Error", HFILL}},
-         { &hf_srvsvc_enum_handle, 
+         { &hf_srvsvc_enum_handle,
            { "Enumeration handle", "srvsvc.enum_hnd", FT_BYTES,
              BASE_HEX, NULL, 0x0, "Enumeration Handle", HFILL}},
          { &hf_srvsvc_irpstacksize,
@@ -6832,7 +7719,7 @@ proto_register_dcerpc_srvsvc(void)
            { "Address Len", "srvsvc.transport.addresslen", FT_UINT32,
              BASE_DEC, NULL, 0x0, "Length of transport address", HFILL}},
          { &hf_srvsvc_transport_networkaddress,
-           { "Network Address", "srvsvc.transport.networkaddress", FT_UINT32,
+           { "Network Address", "srvsvc.transport.networkaddress", FT_STRING,
              BASE_HEX, NULL, 0x0, "Network address for transport", HFILL}},
          { &hf_srvsvc_service_bits,
            { "Service Bits", "srvsvc.service_bits", FT_UINT32,
@@ -6846,24 +7733,112 @@ proto_register_dcerpc_srvsvc(void)
          { &hf_srvsvc_path_flags,
            { "Flags", "srvsvc.path_flags", FT_UINT32,
              BASE_HEX, NULL, 0x0, "Path flags", HFILL}},
+         { &hf_srvsvc_share_flags,
+           { "Flags", "srvsvc.share_flags", FT_UINT32,
+             BASE_HEX, NULL, 0x0, "Share flags", HFILL}},
          { &hf_srvsvc_path_type,
            { "Type", "srvsvc.path_type", FT_UINT32,
              BASE_DEC, NULL, 0x0, "Path type", HFILL}},
+         { &hf_srvsvc_path_len,
+           { "Len", "srvsvc.path_len", FT_UINT32,
+             BASE_DEC, NULL, 0x0, "Path len", HFILL}},
          { &hf_srvsvc_outbuflen,
            { "OutBufLen", "srvsvc.outbuflen", FT_UINT32,
              BASE_DEC, NULL, 0x0, "Output Buffer Length", HFILL}},
          { &hf_srvsvc_prefix,
-           { "Prefix", "srvsvc.prefix", FT_UINT32,
+           { "Prefix", "srvsvc.prefix", FT_STRING,
              BASE_HEX, NULL, 0x0, "Path Prefix", HFILL}},
          { &hf_srvsvc_hnd,
            { "Context Handle", "srvsvc.hnd", FT_BYTES,
              BASE_NONE, NULL, 0x0, "Context Handle", HFILL}},
+         { &hf_srvsvc_server_stat_start,
+           { "Start", "srvsvc.server_stat.start", FT_UINT32,
+             BASE_DEC, NULL, 0x0, "", HFILL}},
+         { &hf_srvsvc_server_stat_fopens,
+           { "Fopens", "srvsvc.server_stat.fopens", FT_UINT32,
+             BASE_DEC, NULL, 0x0, "Number of fopens", HFILL}},
+         { &hf_srvsvc_server_stat_devopens,
+           { "Devopens", "srvsvc.server_stat.devopens", FT_UINT32,
+             BASE_DEC, NULL, 0x0, "Number of devopens", HFILL}},
+         { &hf_srvsvc_server_stat_jobsqueued,
+           { "Jobs Queued", "srvsvc.server_stat.jobsqueued", FT_UINT32,
+             BASE_DEC, NULL, 0x0, "Number of jobs queued", HFILL}},
+         { &hf_srvsvc_server_stat_sopens,
+           { "Sopens", "srvsvc.server_stat.sopens", FT_UINT32,
+             BASE_DEC, NULL, 0x0, "Number of sopens", HFILL}},
+         { &hf_srvsvc_server_stat_stimeouts,
+           { "stimeouts", "srvsvc.server_stat.stimeouts", FT_UINT32,
+             BASE_DEC, NULL, 0x0, "Number of stimeouts", HFILL}},
+         { &hf_srvsvc_server_stat_serrorout,
+           { "Serrorout", "srvsvc.server_stat.serrorout", FT_UINT32,
+             BASE_DEC, NULL, 0x0, "Number of serrorout", HFILL}},
+         { &hf_srvsvc_server_stat_pwerrors,
+           { "Pwerrors", "srvsvc.server_stat.pwerrors", FT_UINT32,
+             BASE_DEC, NULL, 0x0, "Number of password errors", HFILL}},
+         { &hf_srvsvc_server_stat_permerrors,
+           { "Permerrors", "srvsvc.server_stat.permerrors", FT_UINT32,
+             BASE_DEC, NULL, 0x0, "Number of permission errors", HFILL}},
+         { &hf_srvsvc_server_stat_syserrors,
+           { "Syserrors", "srvsvc.server_stat.syserrors", FT_UINT32,
+             BASE_DEC, NULL, 0x0, "Number of system errors", HFILL}},
+         { &hf_srvsvc_server_stat_bytessent,
+           { "Bytes Sent", "srvsvc.server_stat.bytessent", FT_UINT64,
+             BASE_DEC, NULL, 0x0, "Number of bytes sent", HFILL}},
+         { &hf_srvsvc_server_stat_bytesrcvd,
+           { "Bytes Rcvd", "srvsvc.server_stat.bytesrcvd", FT_UINT64,
+             BASE_DEC, NULL, 0x0, "Number of bytes received", HFILL}},
+         { &hf_srvsvc_server_stat_avresponse,
+           { "Avresponse", "srvsvc.server_stat.avresponse", FT_UINT32,
+             BASE_DEC, NULL, 0x0, "", HFILL}},
+         { &hf_srvsvc_server_stat_reqbufneed,
+           { "Req Buf Need", "srvsvc.server_stat.reqbufneed", FT_UINT32,
+             BASE_DEC, NULL, 0x0, "Number of request buffers needed?", HFILL}},
+         { &hf_srvsvc_server_stat_bigbufneed,
+           { "Big Buf Need", "srvsvc.server_stat.bigbufneed", FT_UINT32,
+             BASE_DEC, NULL, 0x0, "Number of big buffers needed?", HFILL}},
+         { &hf_srvsvc_tod_elapsed,
+           { "Elapsed", "srvsvc.tod.elapsed", FT_UINT32,
+             BASE_DEC, NULL, 0x0, "", HFILL}},
+         { &hf_srvsvc_tod_msecs,
+           { "msecs", "srvsvc.tod.msecs", FT_UINT32,
+             BASE_DEC, NULL, 0x0, "", HFILL}},
+         { &hf_srvsvc_tod_hours,
+           { "Hours", "srvsvc.tod.hours", FT_UINT32,
+             BASE_DEC, NULL, 0x0, "", HFILL}},
+         { &hf_srvsvc_tod_mins,
+           { "Mins", "srvsvc.tod.mins", FT_UINT32,
+             BASE_DEC, NULL, 0x0, "", HFILL}},
+         { &hf_srvsvc_tod_secs,
+           { "Secs", "srvsvc.tod.secs", FT_UINT32,
+             BASE_DEC, NULL, 0x0, "", HFILL}},
+         { &hf_srvsvc_tod_hunds,
+           { "Hunds", "srvsvc.tod.hunds", FT_UINT32,
+             BASE_DEC, NULL, 0x0, "", HFILL}},
+         { &hf_srvsvc_tod_timezone,
+           { "Timezone", "srvsvc.tod.timezone", FT_UINT32,
+             BASE_DEC, NULL, 0x0, "", HFILL}},
+         { &hf_srvsvc_tod_tinterval,
+           { "Tinterval", "srvsvc.tod.tinterval", FT_UINT32,
+             BASE_DEC, NULL, 0x0, "", HFILL}},
+         { &hf_srvsvc_tod_day,
+           { "Day", "srvsvc.tod.day", FT_UINT32,
+             BASE_DEC, NULL, 0x0, "", HFILL}},
+         { &hf_srvsvc_tod_month,
+           { "Month", "srvsvc.tod.month", FT_UINT32,
+             BASE_DEC, NULL, 0x0, "", HFILL}},
+         { &hf_srvsvc_tod_year,
+           { "Year", "srvsvc.tod.year", FT_UINT32,
+             BASE_DEC, NULL, 0x0, "", HFILL}},
+         { &hf_srvsvc_tod_weekday,
+           { "Weekday", "srvsvc.tod.weekday", FT_UINT32,
+             BASE_DEC, NULL, 0x0, "", HFILL}},
        };
 
         static gint *ett[] = {
                 &ett_dcerpc_srvsvc,
                &ett_srvsvc_share_info_1,
                &ett_srvsvc_share_info_2,
+               &ett_srvsvc_share_info_501,
                &ett_srvsvc_share_info_502
         };
 
@@ -6879,8 +7854,7 @@ proto_reg_handoff_dcerpc_srvsvc(void)
 {
         /* Register protocol as dcerpc */
 
-        dcerpc_init_uuid(proto_dcerpc_srvsvc, ett_dcerpc_srvsvc, 
-                         &uuid_dcerpc_srvsvc, ver_dcerpc_srvsvc, 
-                         dcerpc_srvsvc_dissectors);
+        dcerpc_init_uuid(proto_dcerpc_srvsvc, ett_dcerpc_srvsvc,
+                         &uuid_dcerpc_srvsvc, ver_dcerpc_srvsvc,
+                         dcerpc_srvsvc_dissectors, hf_srvsvc_opnum);
 }
-