1 /* packet-dcerpc-srvsvc.c
2 * Routines for SMB \\PIPE\\srvsvc packet disassembly
3 * Copyright 2001-2002, Tim Potter <tpot@samba.org>
4 * Copyright 2002, Richard Sharpe <rsharpe@ns.aus.com>
5 * decode srvsvc calls where Samba knows them ...
6 * Copyright 2002, Ronnie Sahlberg
7 * rewrote entire dissector
9 * 2002, some share information levels implemented based on samba
13 * $Id: packet-dcerpc-srvsvc.c,v 1.44 2002/09/05 00:17:05 tpot Exp $
15 * Ethereal - Network traffic analyzer
16 * By Gerald Combs <gerald@ethereal.com>
17 * Copyright 1998 Gerald Combs
19 * This program is free software; you can redistribute it and/or
20 * modify it under the terms of the GNU General Public License
21 * as published by the Free Software Foundation; either version 2
22 * of the License, or (at your option) any later version.
24 * This program is distributed in the hope that it will be useful,
25 * but WITHOUT ANY WARRANTY; without even the implied warranty of
26 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27 * GNU General Public License for more details.
29 * You should have received a copy of the GNU General Public License
30 * along with this program; if not, write to the Free Software
31 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
34 /* The IDL file for this interface can be extracted by grepping for IDL */
42 #include <epan/packet.h>
43 #include "packet-dcerpc.h"
44 #include "packet-dcerpc-srvsvc.h"
45 #include "packet-dcerpc-lsa.h"
46 #include "packet-dcerpc-nt.h"
47 #include "packet-smb-common.h"
50 static int proto_dcerpc_srvsvc = -1;
51 static int hf_srvsvc_opnum = -1;
52 static int hf_srvsvc_reserved = -1;
53 static int hf_srvsvc_server = -1;
54 static int hf_srvsvc_emulated_server = -1;
55 static int hf_srvsvc_alerts = -1;
56 static int hf_srvsvc_guest = -1;
57 static int hf_srvsvc_transport = -1;
58 static int hf_srvsvc_session = -1;
59 static int hf_srvsvc_session_num_opens = -1;
60 static int hf_srvsvc_session_time = -1;
61 static int hf_srvsvc_session_idle_time = -1;
62 static int hf_srvsvc_session_user_flags = -1;
63 static int hf_srvsvc_qualifier = -1;
64 static int hf_srvsvc_computer = -1;
65 static int hf_srvsvc_user = -1;
66 static int hf_srvsvc_path = -1;
67 static int hf_srvsvc_share_passwd = -1;
68 static int hf_srvsvc_share_alternate_name = -1;
69 static int hf_srvsvc_file_id = -1;
70 static int hf_srvsvc_perm = -1;
71 static int hf_srvsvc_policy = -1;
72 static int hf_srvsvc_file_num_locks = -1;
73 static int hf_srvsvc_con_id = -1;
74 static int hf_srvsvc_max_uses = -1;
75 static int hf_srvsvc_cur_uses = -1;
76 static int hf_srvsvc_con_time = -1;
77 static int hf_srvsvc_con_type = -1;
78 static int hf_srvsvc_con_num_opens = -1;
79 static int hf_srvsvc_chrqpri = -1;
80 static int hf_srvsvc_chrqnumusers = -1;
81 static int hf_srvsvc_chrqnumahead = -1;
82 static int hf_srvsvc_chrdev = -1;
83 static int hf_srvsvc_chrdevq = -1;
84 static int hf_srvsvc_chrdev_time = -1;
85 static int hf_srvsvc_chrdev_status = -1;
86 static int hf_srvsvc_chrdev_opcode = -1;
87 static int hf_srvsvc_info_level = -1;
88 static int hf_srvsvc_rc = -1;
89 static int hf_srvsvc_platform_id = -1;
90 static int hf_srvsvc_ver_major = -1;
91 static int hf_srvsvc_ver_minor = -1;
92 static int hf_srvsvc_server_type = -1;
93 static int hf_srvsvc_client_type = -1;
94 static int hf_srvsvc_comment = -1;
95 static int hf_srvsvc_users = -1;
96 static int hf_srvsvc_disc = -1;
97 static int hf_srvsvc_hidden = -1;
98 static int hf_srvsvc_announce = -1;
99 static int hf_srvsvc_anndelta = -1;
100 static int hf_srvsvc_licences = -1;
101 static int hf_srvsvc_user_path = -1;
102 static int hf_srvsvc_share = -1;
103 static int hf_srvsvc_share_type = -1;
104 static int hf_srvsvc_num_entries = -1;
105 static int hf_srvsvc_preferred_len = -1;
106 static int hf_srvsvc_parm_error = -1;
107 static int hf_srvsvc_enum_handle = -1;
108 static int hf_srvsvc_ulist_mtime = -1;
109 static int hf_srvsvc_glist_mtime = -1;
110 static int hf_srvsvc_alist_mtime = -1;
111 static int hf_srvsvc_security = -1;
112 static int hf_srvsvc_dfs_root_flags = -1;
113 static int hf_srvsvc_numadmin = -1;
114 static int hf_srvsvc_lanmask = -1;
115 static int hf_srvsvc_chdevs = -1;
116 static int hf_srvsvc_chdevqs = -1;
117 static int hf_srvsvc_chdevjobs = -1;
118 static int hf_srvsvc_connections = -1;
119 static int hf_srvsvc_shares = -1;
120 static int hf_srvsvc_openfiles = -1;
121 static int hf_srvsvc_sessopens = -1;
122 static int hf_srvsvc_sessvcs = -1;
123 static int hf_srvsvc_sessreqs = -1;
124 static int hf_srvsvc_opensearch = -1;
125 static int hf_srvsvc_activelocks = -1;
126 static int hf_srvsvc_sizreqbufs = -1;
127 static int hf_srvsvc_numbigbufs = -1;
128 static int hf_srvsvc_numfiletasks = -1;
129 static int hf_srvsvc_alertsched = -1;
130 static int hf_srvsvc_erroralert = -1;
131 static int hf_srvsvc_logonalert = -1;
132 static int hf_srvsvc_accessalert = -1;
133 static int hf_srvsvc_diskalert = -1;
134 static int hf_srvsvc_netioalert = -1;
135 static int hf_srvsvc_maxauditsz = -1;
136 static int hf_srvsvc_srvheuristics = -1;
137 static int hf_srvsvc_auditedevents = -1;
138 static int hf_srvsvc_auditprofile = -1;
139 static int hf_srvsvc_autopath = -1;
140 static int hf_srvsvc_initworkitems = -1;
141 static int hf_srvsvc_maxworkitems = -1;
142 static int hf_srvsvc_rawworkitems = -1;
143 static int hf_srvsvc_irpstacksize = -1;
144 static int hf_srvsvc_maxrawbuflen = -1;
145 static int hf_srvsvc_maxpagedmemoryusage = -1;
146 static int hf_srvsvc_maxnonpagedmemoryusage = -1;
147 static int hf_srvsvc_enablesoftcompat = -1;
148 static int hf_srvsvc_enableforcedlogoff = -1;
149 static int hf_srvsvc_timesource = -1;
150 static int hf_srvsvc_acceptdownlevelapis = -1;
151 static int hf_srvsvc_lmannounce = -1;
152 static int hf_srvsvc_domain = -1;
153 static int hf_srvsvc_maxcopyreadlen = -1;
154 static int hf_srvsvc_maxcopywritelen = -1;
155 static int hf_srvsvc_minkeepsearch = -1;
156 static int hf_srvsvc_maxkeepsearch = -1;
157 static int hf_srvsvc_minkeepcomplsearch = -1;
158 static int hf_srvsvc_maxkeepcomplsearch = -1;
159 static int hf_srvsvc_threadcountadd = -1;
160 static int hf_srvsvc_numblockthreads = -1;
161 static int hf_srvsvc_scavtimeout = -1;
162 static int hf_srvsvc_minrcvqueue = -1;
163 static int hf_srvsvc_minfreeworkitems = -1;
164 static int hf_srvsvc_xactmemsize = -1;
165 static int hf_srvsvc_threadpriority = -1;
166 static int hf_srvsvc_maxmpxct = -1;
167 static int hf_srvsvc_oplockbreakwait = -1;
168 static int hf_srvsvc_oplockbreakresponsewait = -1;
169 static int hf_srvsvc_enableoplocks = -1;
170 static int hf_srvsvc_enableoplockforceclose = -1;
171 static int hf_srvsvc_enablefcbopens = -1;
172 static int hf_srvsvc_enableraw = -1;
173 static int hf_srvsvc_enablesharednetdrives = -1;
174 static int hf_srvsvc_minfreeconnections = -1;
175 static int hf_srvsvc_maxfreeconnections = -1;
176 static int hf_srvsvc_initsesstable = -1;
177 static int hf_srvsvc_initconntable = -1;
178 static int hf_srvsvc_initfiletable = -1;
179 static int hf_srvsvc_initsearchtable = -1;
180 static int hf_srvsvc_errortreshold = -1;
181 static int hf_srvsvc_networkerrortreshold = -1;
182 static int hf_srvsvc_diskspacetreshold = -1;
183 static int hf_srvsvc_maxlinkdelay = -1;
184 static int hf_srvsvc_minlinkthroughput = -1;
185 static int hf_srvsvc_linkinfovalidtime = -1;
186 static int hf_srvsvc_scavqosinfoupdatetime = -1;
187 static int hf_srvsvc_maxworkitemidletime = -1;
188 static int hf_srvsvc_disk_name = -1;
189 static int hf_srvsvc_disk_name_len = -1;
190 static int hf_srvsvc_service = -1;
191 static int hf_srvsvc_service_options = -1;
192 static int hf_srvsvc_transport_numberofvcs = -1;
193 static int hf_srvsvc_transport_name = -1;
194 static int hf_srvsvc_transport_address = -1;
195 static int hf_srvsvc_transport_address_len = -1;
196 static int hf_srvsvc_transport_networkaddress = -1;
197 static int hf_srvsvc_service_bits = -1;
198 static int hf_srvsvc_service_bits_of_interest = -1;
199 static int hf_srvsvc_update_immediately = -1;
200 static int hf_srvsvc_path_flags = -1;
201 static int hf_srvsvc_share_flags = -1;
202 static int hf_srvsvc_path_type = -1;
203 static int hf_srvsvc_outbuflen = -1;
204 static int hf_srvsvc_prefix = -1;
205 static int hf_srvsvc_hnd = -1;
206 static int hf_srvsvc_server_stat_start = -1;
207 static int hf_srvsvc_server_stat_fopens = -1;
208 static int hf_srvsvc_server_stat_devopens = -1;
209 static int hf_srvsvc_server_stat_jobsqueued = -1;
210 static int hf_srvsvc_server_stat_sopens = -1;
211 static int hf_srvsvc_server_stat_stimeouts = -1;
212 static int hf_srvsvc_server_stat_serrorout = -1;
213 static int hf_srvsvc_server_stat_pwerrors = -1;
214 static int hf_srvsvc_server_stat_permerrors = -1;
215 static int hf_srvsvc_server_stat_syserrors = -1;
216 static int hf_srvsvc_server_stat_bytessent = -1;
217 static int hf_srvsvc_server_stat_bytesrcvd = -1;
218 static int hf_srvsvc_server_stat_avresponse = -1;
219 static int hf_srvsvc_server_stat_reqbufneed = -1;
220 static int hf_srvsvc_server_stat_bigbufneed = -1;
221 static int hf_srvsvc_tod_elapsed = -1;
222 static int hf_srvsvc_tod_msecs = -1;
223 static int hf_srvsvc_tod_hours = -1;
224 static int hf_srvsvc_tod_mins = -1;
225 static int hf_srvsvc_tod_secs = -1;
226 static int hf_srvsvc_tod_hunds = -1;
227 static int hf_srvsvc_tod_timezone = -1;
228 static int hf_srvsvc_tod_tinterval = -1;
229 static int hf_srvsvc_tod_day = -1;
230 static int hf_srvsvc_tod_month = -1;
231 static int hf_srvsvc_tod_year = -1;
232 static int hf_srvsvc_tod_weekday = -1;
233 static int hf_srvsvc_path_len = -1;
235 static gint ett_dcerpc_srvsvc = -1;
236 static gint ett_srvsvc_share_info_1 = -1;
237 static gint ett_srvsvc_share_info_2 = -1;
238 static gint ett_srvsvc_share_info_501 = -1;
239 static gint ett_srvsvc_share_info_502 = -1;
244 IDL [ uuid(4b324fc8-1670-01d3-1278-5a47bf6ee188),
246 IDL implicit_handle(handle_t rpc_binding)
247 IDL ] interface srvsvc
250 static e_uuid_t uuid_dcerpc_srvsvc = {
251 0x4b324fc8, 0x1670, 0x01d3,
252 { 0x12, 0x78, 0x5a, 0x47, 0xbf, 0x6e, 0xe1, 0x88 }
255 static guint16 ver_dcerpc_srvsvc = 3;
258 srvsvc_dissect_pointer_long(tvbuff_t *tvb, int offset,
259 packet_info *pinfo, proto_tree *tree,
264 di=pinfo->private_data;
265 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
271 srvsvc_dissect_ENUM_HANDLE(tvbuff_t *tvb, int offset,
272 packet_info *pinfo, proto_tree *tree,
276 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
277 hf_srvsvc_enum_handle, 0);
283 srvsvc_dissect_pointer_UNICODE_STRING(tvbuff_t *tvb, int offset,
284 packet_info *pinfo, proto_tree *tree,
289 di=pinfo->private_data;
290 if(di->conformant_run){
291 /*just a run to handle conformant arrays, nothing to dissect */
295 offset = dissect_ndr_nt_UNICODE_STRING_str(tvb, offset, pinfo, tree,
305 * IDL typedef struct {
306 * IDL [string] [unique] wchar_t *dev;
307 * IDL } CHARDEV_INFO_0;
310 srvsvc_dissect_CHARDEV_INFO_0(tvbuff_t *tvb, int offset,
311 packet_info *pinfo, proto_tree *tree,
314 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
315 srvsvc_dissect_pointer_UNICODE_STRING,
316 NDR_POINTER_UNIQUE, "Char Device",
317 hf_srvsvc_chrdev, 0);
322 srvsvc_dissect_CHARDEV_INFO_0_array(tvbuff_t *tvb, int offset,
323 packet_info *pinfo, proto_tree *tree,
326 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
327 srvsvc_dissect_CHARDEV_INFO_0);
333 * IDL typedef struct {
334 * IDL long EntriesRead;
335 * IDL [size_is(EntriesRead)] [unique] CHARDEV_INFO_0 *devs;
336 * IDL } CHARDEV_INFO_0_CONTAINER;
339 srvsvc_dissect_CHARDEV_INFO_0_CONTAINER(tvbuff_t *tvb, int offset,
340 packet_info *pinfo, proto_tree *tree,
343 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
344 hf_srvsvc_num_entries, NULL);
346 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
347 srvsvc_dissect_CHARDEV_INFO_0_array, NDR_POINTER_UNIQUE,
348 "CHARDEV_INFO_0 array:", -1, 0);
354 * IDL typedef struct {
355 * IDL [string] [unique] wchar_t *dev;
357 * IDL [string] [unique] wchar_t *user;
359 * IDL } CHARDEV_INFO_1;
362 srvsvc_dissect_CHARDEV_INFO_1(tvbuff_t *tvb, int offset,
363 packet_info *pinfo, proto_tree *tree,
366 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
367 srvsvc_dissect_pointer_UNICODE_STRING,
368 NDR_POINTER_UNIQUE, "Char Device",
369 hf_srvsvc_chrdev, 0);
371 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
372 hf_srvsvc_chrdev_status, 0);
374 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
375 srvsvc_dissect_pointer_UNICODE_STRING,
376 NDR_POINTER_UNIQUE, "User",
379 /* XXX dont know how to decode this time field */
380 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
381 hf_srvsvc_chrdev_time, 0);
386 srvsvc_dissect_CHARDEV_INFO_1_array(tvbuff_t *tvb, int offset,
387 packet_info *pinfo, proto_tree *tree,
390 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
391 srvsvc_dissect_CHARDEV_INFO_1);
397 * IDL typedef struct {
398 * IDL long EntriesRead;
399 * IDL [size_is(EntriesRead)] [unique] CHARDEV_INFO_1 *devs;
400 * IDL } CHARDEV_INFO_1_CONTAINER;
403 srvsvc_dissect_CHARDEV_INFO_1_CONTAINER(tvbuff_t *tvb, int offset,
404 packet_info *pinfo, proto_tree *tree,
407 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
408 hf_srvsvc_num_entries, NULL);
410 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
411 srvsvc_dissect_CHARDEV_INFO_1_array, NDR_POINTER_UNIQUE,
412 "CHARDEV_INFO_1 array:", -1, 3);
418 * IDL typedef [switch_type(long)] union {
419 * IDL [case(0)] [unique] CHARDEV_INFO_0_CONTAINER *dev0;
420 * IDL [case(1)] [unique] CHARDEV_INFO_1_CONTAINER *dev1;
421 * IDL } CHARDEV_ENUM_UNION;
424 srvsvc_dissect_CHARDEV_ENUM_UNION(tvbuff_t *tvb, int offset,
425 packet_info *pinfo, proto_tree *tree,
432 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_info_level, &level);
436 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
437 srvsvc_dissect_CHARDEV_INFO_0_CONTAINER,
438 NDR_POINTER_UNIQUE, "CHARDEV_INFO_0_CONTAINER:",
442 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
443 srvsvc_dissect_CHARDEV_INFO_1_CONTAINER,
444 NDR_POINTER_UNIQUE, "CHARDEV_INFO_1_CONTAINER:",
453 * IDL typedef struct {
455 * IDL CHARDEV_ENUM_UNION devs;
456 * IDL } CHARDEV_ENUM_STRUCT;
459 srvsvc_dissect_CHARDEV_ENUM_STRUCT(tvbuff_t *tvb, int offset,
460 packet_info *pinfo, proto_tree *tree,
463 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
464 hf_srvsvc_info_level, 0);
466 offset = srvsvc_dissect_CHARDEV_ENUM_UNION(tvb, offset, pinfo, tree, drep);
472 * IDL typedef [switch_type(long)] union {
473 * IDL [case(0)] [unique] CHARDEV_INFO_0 *dev0;
474 * IDL [case(1)] [unique] CHARDEV_INFO_1 *dev1;
475 * IDL } CHARDEV_INFO_UNION;
478 srvsvc_dissect_CHARDEV_INFO_UNION(tvbuff_t *tvb, int offset,
479 packet_info *pinfo, proto_tree *tree,
486 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_info_level, &level);
490 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
491 srvsvc_dissect_CHARDEV_INFO_0,
492 NDR_POINTER_UNIQUE, "CHARDEV_INFO_0:",
496 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
497 srvsvc_dissect_CHARDEV_INFO_1,
498 NDR_POINTER_UNIQUE, "CHARDEV_INFO_1:",
507 * IDL long NetrCharDevEnum(
508 * IDL [in] [string] [unique] wchar_t *ServerName,
509 * IDL [in] [out] [ref] CHARDEV_ENUM_STRUCT *devs,
510 * IDL [in] long PreferredMaximumLength,
511 * IDL [out] long num_entries,
512 * IDL [in] [out] [unique] long *ResumeHandle
516 srvsvc_dissect_netrchardevenum_rqst(tvbuff_t *tvb, int offset,
517 packet_info *pinfo, proto_tree *tree,
520 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
521 srvsvc_dissect_pointer_UNICODE_STRING,
522 NDR_POINTER_UNIQUE, "Server",
523 hf_srvsvc_server, 0);
525 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
526 srvsvc_dissect_CHARDEV_ENUM_STRUCT,
527 NDR_POINTER_REF, "CHARDEV_ENUM_STRUCT",
530 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
531 hf_srvsvc_preferred_len, 0);
533 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
534 srvsvc_dissect_ENUM_HANDLE,
535 NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
540 srvsvc_dissect_netrchardevenum_reply(tvbuff_t *tvb, int offset,
541 packet_info *pinfo, proto_tree *tree,
544 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
545 srvsvc_dissect_CHARDEV_ENUM_STRUCT,
546 NDR_POINTER_REF, "CHARDEV_ENUM_STRUCT",
549 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
550 hf_srvsvc_num_entries, NULL);
552 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
553 srvsvc_dissect_ENUM_HANDLE,
554 NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
556 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
564 * IDL long NetrCharDevGetInfo(
565 * IDL [in] [string] [unique] wchar_t *ServerName,
566 * IDL [in] [string] [ref] wchar_t *DevName,
567 * IDL [in] long Level ,
568 * IDL [out] [ref] CHARDEV_INFO_STRUCT *dev
572 srvsvc_dissect_netrchardevgetinfo_rqst(tvbuff_t *tvb, int offset,
573 packet_info *pinfo, proto_tree *tree,
576 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
577 srvsvc_dissect_pointer_UNICODE_STRING,
578 NDR_POINTER_UNIQUE, "Server",
579 hf_srvsvc_server, 0);
581 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
582 srvsvc_dissect_pointer_UNICODE_STRING,
583 NDR_POINTER_REF, "Char Device",
584 hf_srvsvc_chrdev, 0);
586 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
587 hf_srvsvc_info_level, 0);
592 srvsvc_dissect_netrchardevgetinfo_reply(tvbuff_t *tvb, int offset,
593 packet_info *pinfo, proto_tree *tree,
596 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
597 srvsvc_dissect_CHARDEV_INFO_UNION,
598 NDR_POINTER_REF, "CHARDEV_INFO_UNION", -1, 0);
600 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
607 * IDL long NetrCharDevControl(
608 * IDL [in] [string] [unique] wchar_t *ServerName,
609 * IDL [in] [string] [ref] wchar_t *DevName,
610 * IDL [in] long Opcode
614 srvsvc_dissect_netrchardevcontrol_rqst(tvbuff_t *tvb, int offset,
615 packet_info *pinfo, proto_tree *tree,
618 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
619 srvsvc_dissect_pointer_UNICODE_STRING,
620 NDR_POINTER_UNIQUE, "Server",
621 hf_srvsvc_server, 0);
623 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
624 srvsvc_dissect_pointer_UNICODE_STRING,
625 NDR_POINTER_REF, "Char Device",
626 hf_srvsvc_chrdev, 0);
628 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
629 hf_srvsvc_chrdev_opcode, 0);
634 srvsvc_dissect_netrchardevcontrol_reply(tvbuff_t *tvb, int offset,
635 packet_info *pinfo, proto_tree *tree,
638 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
647 * IDL typedef struct {
648 * IDL [string] [unique] wchar_t *dev;
649 * IDL } CHARDEVQ_INFO_0;
652 srvsvc_dissect_CHARDEVQ_INFO_0(tvbuff_t *tvb, int offset,
653 packet_info *pinfo, proto_tree *tree,
656 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
657 srvsvc_dissect_pointer_UNICODE_STRING,
658 NDR_POINTER_UNIQUE, "Char QDevice",
659 hf_srvsvc_chrdev, 0);
664 srvsvc_dissect_CHARDEVQ_INFO_0_array(tvbuff_t *tvb, int offset,
665 packet_info *pinfo, proto_tree *tree,
668 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
669 srvsvc_dissect_CHARDEVQ_INFO_0);
675 * IDL typedef struct {
676 * IDL long EntriesRead;
677 * IDL [size_is(EntriesRead)] [unique] CHARDEVQ_INFO_0 *devs;
678 * IDL } CHARDEVQ_INFO_0_CONTAINER;
681 srvsvc_dissect_CHARDEVQ_INFO_0_CONTAINER(tvbuff_t *tvb, int offset,
682 packet_info *pinfo, proto_tree *tree,
685 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
686 hf_srvsvc_num_entries, NULL);
688 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
689 srvsvc_dissect_CHARDEVQ_INFO_0_array, NDR_POINTER_UNIQUE,
690 "CHARDEVQ_INFO_0 array:", -1, 0);
696 * IDL typedef struct {
697 * IDL [string] [unique] wchar_t *dev;
699 * IDL [string] [unique] wchar_t *devs;
701 * IDL long num_ahead;
702 * IDL } CHARDEVQ_INFO_1;
705 srvsvc_dissect_CHARDEVQ_INFO_1(tvbuff_t *tvb, int offset,
706 packet_info *pinfo, proto_tree *tree,
709 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
710 srvsvc_dissect_pointer_UNICODE_STRING,
711 NDR_POINTER_UNIQUE, "Char Device",
712 hf_srvsvc_chrdev, 0);
714 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
715 hf_srvsvc_chrqpri, 0);
717 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
718 srvsvc_dissect_pointer_UNICODE_STRING,
719 NDR_POINTER_UNIQUE, "Char Devices",
720 hf_srvsvc_chrdevq, 0);
722 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
723 hf_srvsvc_chrqnumusers, 0);
725 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
726 hf_srvsvc_chrqnumahead, 0);
731 srvsvc_dissect_CHARDEVQ_INFO_1_array(tvbuff_t *tvb, int offset,
732 packet_info *pinfo, proto_tree *tree,
735 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
736 srvsvc_dissect_CHARDEVQ_INFO_1);
742 * IDL typedef struct {
743 * IDL long EntriesRead;
744 * IDL [size_is(EntriesRead)] [unique] CHARDEVQ_INFO_1 *devs;
745 * IDL } CHARDEVQ_INFO_1_CONTAINER;
748 srvsvc_dissect_CHARDEVQ_INFO_1_CONTAINER(tvbuff_t *tvb, int offset,
749 packet_info *pinfo, proto_tree *tree,
752 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
753 hf_srvsvc_num_entries, NULL);
755 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
756 srvsvc_dissect_CHARDEVQ_INFO_1_array, NDR_POINTER_UNIQUE,
757 "CHARDEVQ_INFO_1 array:", -1, 3);
763 * IDL typedef [switch_type(long)] union {
764 * IDL [case(0)] [unique] CHARDEVQ_INFO_0_CONTAINER *dev0;
765 * IDL [case(1)] [unique] CHARDEVQ_INFO_1_CONTAINER *dev1;
766 * IDL } CHARDEVQ_ENUM_UNION;
769 srvsvc_dissect_CHARDEVQ_ENUM_UNION(tvbuff_t *tvb, int offset,
770 packet_info *pinfo, proto_tree *tree,
777 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_info_level, &level);
781 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
782 srvsvc_dissect_CHARDEVQ_INFO_0_CONTAINER,
783 NDR_POINTER_UNIQUE, "CHARDEVQ_INFO_0_CONTAINER:",
787 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
788 srvsvc_dissect_CHARDEVQ_INFO_1_CONTAINER,
789 NDR_POINTER_UNIQUE, "CHARDEVQ_INFO_1_CONTAINER:",
798 * IDL typedef struct {
800 * IDL CHARDEVQ_ENUM_UNION devs;
801 * IDL } CHARDEVQ_ENUM_STRUCT;
804 srvsvc_dissect_CHARDEVQ_ENUM_STRUCT(tvbuff_t *tvb, int offset,
805 packet_info *pinfo, proto_tree *tree,
808 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
809 hf_srvsvc_info_level, 0);
811 offset = srvsvc_dissect_CHARDEVQ_ENUM_UNION(tvb, offset, pinfo, tree, drep);
817 * IDL typedef [switch_type(long)] union {
818 * IDL [case(0)] [unique] CHARDEVQ_INFO_0 *dev0;
819 * IDL [case(1)] [unique] CHARDEVQ_INFO_1 *dev1;
820 * IDL } CHARDEVQ_INFO;
823 srvsvc_dissect_CHARDEVQ_INFO(tvbuff_t *tvb, int offset,
824 packet_info *pinfo, proto_tree *tree,
831 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_info_level, &level);
835 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
836 srvsvc_dissect_CHARDEVQ_INFO_0,
837 NDR_POINTER_UNIQUE, "CHARDEVQ_INFO_0:",
841 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
842 srvsvc_dissect_CHARDEVQ_INFO_1,
843 NDR_POINTER_UNIQUE, "CHARDEVQ_INFO_1:",
853 * IDL long NetrCharDevQEnum(
854 * IDL [in] [string] [unique] wchar_t *ServerName,
855 * IDL [in] [string] [unique] wchar_t *UserName,
856 * IDL [in] [out] [ref] CHARDEVQ_ENUM_STRUCT *devs,
857 * IDL [in] long PreferredMaximumLength,
858 * IDL [out] long num_entries,
859 * IDL [in] [out] [unique] long *ResumeHandle
863 srvsvc_dissect_netrchardevqenum_rqst(tvbuff_t *tvb, int offset,
864 packet_info *pinfo, proto_tree *tree,
867 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
868 srvsvc_dissect_pointer_UNICODE_STRING,
869 NDR_POINTER_UNIQUE, "Server",
870 hf_srvsvc_server, 0);
872 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
873 srvsvc_dissect_pointer_UNICODE_STRING,
874 NDR_POINTER_UNIQUE, "User",
877 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
878 srvsvc_dissect_CHARDEVQ_ENUM_STRUCT,
879 NDR_POINTER_REF, "CHARDEVQ_ENUM_STRUCT",
882 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
883 hf_srvsvc_preferred_len, 0);
885 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
886 srvsvc_dissect_ENUM_HANDLE,
887 NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
892 srvsvc_dissect_netrchardevqenum_reply(tvbuff_t *tvb, int offset,
893 packet_info *pinfo, proto_tree *tree,
896 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
897 srvsvc_dissect_CHARDEVQ_ENUM_STRUCT,
898 NDR_POINTER_REF, "CHARDEVQ_ENUM_STRUCT",
901 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
902 hf_srvsvc_num_entries, NULL);
904 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
905 srvsvc_dissect_ENUM_HANDLE,
906 NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
908 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
915 * IDL long NetrCharDevQGetInfo(
916 * IDL [in] [string] [unique] wchar_t *ServerName,
917 * IDL [in] [string] [ref] wchar_t *QueueName,
918 * IDL [in] [string] [ref] wchar_t *UserName,
919 * IDL [in] long Level,
920 * IDL [out] [ref] CHARDEVQ_INFO *devq
924 srvsvc_dissect_netrchardevqgetinfo_rqst(tvbuff_t *tvb, int offset,
925 packet_info *pinfo, proto_tree *tree,
928 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
929 srvsvc_dissect_pointer_UNICODE_STRING,
930 NDR_POINTER_UNIQUE, "Server",
931 hf_srvsvc_server, 0);
933 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
934 srvsvc_dissect_pointer_UNICODE_STRING,
935 NDR_POINTER_REF, "Device Queue",
936 hf_srvsvc_chrdevq, 0);
938 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
939 srvsvc_dissect_pointer_UNICODE_STRING,
940 NDR_POINTER_REF, "User",
943 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
944 hf_srvsvc_info_level, NULL);
949 srvsvc_dissect_netrchardevqgetinfo_reply(tvbuff_t *tvb, int offset,
950 packet_info *pinfo, proto_tree *tree,
953 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
954 srvsvc_dissect_CHARDEVQ_INFO,
955 NDR_POINTER_REF, "CHARDEVQ_INFO:", -1, 0);
957 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
964 * IDL long NetrCharDevQSetInfo(
965 * IDL [in] [string] [unique] wchar_t *ServerName,
966 * IDL [in] [string] [ref] wchar_t *QueueName,
967 * IDL [in] long Level,
968 * IDL [in] [ref] CHARDEVQ_INFO *dev,
969 * IDL [in] [out] [unique] long *ParmError
973 srvsvc_dissect_netrchardevqsetinfo_rqst(tvbuff_t *tvb, int offset,
974 packet_info *pinfo, proto_tree *tree,
977 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
978 srvsvc_dissect_pointer_UNICODE_STRING,
979 NDR_POINTER_UNIQUE, "Server",
980 hf_srvsvc_server, 0);
982 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
983 srvsvc_dissect_pointer_UNICODE_STRING,
984 NDR_POINTER_REF, "Device Queue",
985 hf_srvsvc_chrdevq, 0);
987 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
988 hf_srvsvc_info_level, NULL);
990 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
991 srvsvc_dissect_CHARDEVQ_INFO,
992 NDR_POINTER_REF, "CHARDEVQ_INFO",
995 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
996 srvsvc_dissect_pointer_long, NDR_POINTER_UNIQUE,
997 "Parameter Error:", hf_srvsvc_parm_error, 0);
1002 srvsvc_dissect_netrchardevqsetinfo_reply(tvbuff_t *tvb, int offset,
1003 packet_info *pinfo, proto_tree *tree,
1006 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1007 srvsvc_dissect_pointer_long, NDR_POINTER_UNIQUE,
1008 "Parameter Error:", hf_srvsvc_parm_error, 0);
1010 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
1011 hf_srvsvc_rc, NULL);
1017 * IDL long NetrCharDevQPurge(
1018 * IDL [in] [string] [unique] wchar_t *ServerName,
1019 * IDL [in] [string] [ref] wchar_t *QueueName
1023 srvsvc_dissect_netrchardevqpurge_rqst(tvbuff_t *tvb, int offset,
1024 packet_info *pinfo, proto_tree *tree,
1027 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1028 srvsvc_dissect_pointer_UNICODE_STRING,
1029 NDR_POINTER_UNIQUE, "Server",
1030 hf_srvsvc_server, 0);
1032 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1033 srvsvc_dissect_pointer_UNICODE_STRING,
1034 NDR_POINTER_REF, "Device Queue",
1035 hf_srvsvc_chrdevq, 0);
1040 srvsvc_dissect_netrchardevqpurge_reply(tvbuff_t *tvb, int offset,
1041 packet_info *pinfo, proto_tree *tree,
1044 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
1045 hf_srvsvc_rc, NULL);
1051 * IDL long NetrCharDevQPurge(
1052 * IDL [in] [string] [unique] wchar_t *ServerName,
1053 * IDL [in] [string] [ref] wchar_t *QueueName
1054 * IDL [in] [string] [ref] wchar_t *ComputerName
1058 srvsvc_dissect_netrchardevqpurgeself_rqst(tvbuff_t *tvb, int offset,
1059 packet_info *pinfo, proto_tree *tree,
1062 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1063 srvsvc_dissect_pointer_UNICODE_STRING,
1064 NDR_POINTER_UNIQUE, "Server",
1065 hf_srvsvc_server, 0);
1067 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1068 srvsvc_dissect_pointer_UNICODE_STRING,
1069 NDR_POINTER_REF, "Device Queue",
1070 hf_srvsvc_chrdevq, 0);
1072 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1073 srvsvc_dissect_pointer_UNICODE_STRING,
1074 NDR_POINTER_REF, "Computer",
1075 hf_srvsvc_computer, 0);
1080 srvsvc_dissect_netrchardevqpurgeself_reply(tvbuff_t *tvb, int offset,
1081 packet_info *pinfo, proto_tree *tree,
1084 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
1085 hf_srvsvc_rc, NULL);
1093 * IDL typedef struct {
1095 * IDL } CONNECT_INFO_0;
1098 srvsvc_dissect_CONNECT_INFO_0(tvbuff_t *tvb, int offset,
1099 packet_info *pinfo, proto_tree *tree,
1102 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1103 hf_srvsvc_con_id, NULL);
1108 srvsvc_dissect_CONNECT_INFO_0_array(tvbuff_t *tvb, int offset,
1109 packet_info *pinfo, proto_tree *tree,
1112 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
1113 srvsvc_dissect_CONNECT_INFO_0);
1119 * IDL typedef struct {
1120 * IDL long EntriesRead;
1121 * IDL [size_is(EntriesRead)] [unique] CONNECT_INFO_0 *cons;
1122 * IDL } CONNECT_INFO_0_CONTAINER;
1125 srvsvc_dissect_CONNECT_INFO_0_CONTAINER(tvbuff_t *tvb, int offset,
1126 packet_info *pinfo, proto_tree *tree,
1129 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1130 hf_srvsvc_num_entries, NULL);
1132 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1133 srvsvc_dissect_CONNECT_INFO_0_array, NDR_POINTER_UNIQUE,
1134 "CONNECT_INFO_0 array:", -1, 0);
1141 * IDL typedef struct {
1144 * IDL long num_opens;
1147 * IDL [string] [unique] wchar_t *username;
1148 * IDL [string] [unique] wchar_t *share;
1149 * IDL } CONNECT_INFO_1;
1152 srvsvc_dissect_CONNECT_INFO_1(tvbuff_t *tvb, int offset,
1153 packet_info *pinfo, proto_tree *tree,
1156 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1157 hf_srvsvc_con_id, NULL);
1159 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1160 hf_srvsvc_con_type, NULL);
1162 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1163 hf_srvsvc_con_num_opens, NULL);
1165 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1166 hf_srvsvc_users, NULL);
1168 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1169 hf_srvsvc_con_time, NULL);
1171 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1172 srvsvc_dissect_pointer_UNICODE_STRING,
1173 NDR_POINTER_UNIQUE, "User",
1176 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1177 srvsvc_dissect_pointer_UNICODE_STRING,
1178 NDR_POINTER_UNIQUE, "Share",
1179 hf_srvsvc_share, 0);
1184 srvsvc_dissect_CONNECT_INFO_1_array(tvbuff_t *tvb, int offset,
1185 packet_info *pinfo, proto_tree *tree,
1188 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
1189 srvsvc_dissect_CONNECT_INFO_1);
1195 * IDL typedef struct {
1196 * IDL long EntriesRead;
1197 * IDL [size_is(EntriesRead)] [unique] CONNECT_INFO_0 *cons;
1198 * IDL } CONNECT_INFO_1_CONTAINER;
1201 srvsvc_dissect_CONNECT_INFO_1_CONTAINER(tvbuff_t *tvb, int offset,
1202 packet_info *pinfo, proto_tree *tree,
1205 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1206 hf_srvsvc_num_entries, NULL);
1208 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1209 srvsvc_dissect_CONNECT_INFO_1_array, NDR_POINTER_UNIQUE,
1210 "CONNECT_INFO_1 array:", -1, 0);
1217 * IDL typedef [switch_type(long)] union {
1218 * IDL [case(0)] [unique] CONNECT_INFO_0_CONTAINER *con0;
1219 * IDL [case(1)] [unique] CONNECT_INFO_1_CONTAINER *con1;
1220 * IDL } CONNECT_ENUM_UNION;
1223 srvsvc_dissect_CONNECT_ENUM_UNION(tvbuff_t *tvb, int offset,
1224 packet_info *pinfo, proto_tree *tree,
1231 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_info_level, &level);
1235 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1236 srvsvc_dissect_CONNECT_INFO_0_CONTAINER,
1237 NDR_POINTER_UNIQUE, "CONNECT_INFO_0_CONTAINER:",
1241 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1242 srvsvc_dissect_CONNECT_INFO_1_CONTAINER,
1243 NDR_POINTER_UNIQUE, "CONNECT_INFO_1_CONTAINER:",
1253 * IDL typedef struct {
1255 * IDL CONNECT_ENUM_UNION devs;
1256 * IDL } CONNECT_ENUM_STRUCT;
1259 srvsvc_dissect_CONNECT_ENUM_STRUCT(tvbuff_t *tvb, int offset,
1260 packet_info *pinfo, proto_tree *tree,
1263 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1264 hf_srvsvc_info_level, 0);
1266 offset = srvsvc_dissect_CONNECT_ENUM_UNION(tvb, offset, pinfo, tree, drep);
1273 * IDL long NetrConnectionEnum(
1274 * IDL [in] [string] [unique] wchar_t *ServerName,
1275 * IDL [in] [string] [unique] wchar_t *Qualifier,
1276 * IDL [in] [out] [ref] CONNECT_ENUM_STRUCT *con,
1277 * IDL [in] long MaxLen,
1278 * IDL [in] long num_connections,
1279 * IDL [in] [out] [unique] long *ResumeHandle
1283 srvsvc_dissect_netrconnectionenum_rqst(tvbuff_t *tvb, int offset,
1284 packet_info *pinfo, proto_tree *tree,
1287 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1288 srvsvc_dissect_pointer_UNICODE_STRING,
1289 NDR_POINTER_UNIQUE, "Server",
1290 hf_srvsvc_server, 0);
1292 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1293 srvsvc_dissect_pointer_UNICODE_STRING,
1294 NDR_POINTER_UNIQUE, "Qualifier",
1295 hf_srvsvc_qualifier, 0);
1297 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1298 srvsvc_dissect_CONNECT_ENUM_STRUCT,
1299 NDR_POINTER_REF, "CONNECT_ENUM_STRUCT:",
1302 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1303 hf_srvsvc_preferred_len, 0);
1305 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1306 srvsvc_dissect_ENUM_HANDLE,
1307 NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
1312 srvsvc_dissect_netrconnectionenum_reply(tvbuff_t *tvb, int offset,
1313 packet_info *pinfo, proto_tree *tree,
1316 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1317 srvsvc_dissect_CONNECT_ENUM_STRUCT,
1318 NDR_POINTER_REF, "CONNECT_ENUM_STRUCT:",
1321 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1322 hf_srvsvc_num_entries, NULL);
1324 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1325 srvsvc_dissect_ENUM_HANDLE,
1326 NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
1328 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
1329 hf_srvsvc_rc, NULL);
1335 * IDL typedef struct {
1337 * IDL } FILE_INFO_2;
1340 srvsvc_dissect_FILE_INFO_2(tvbuff_t *tvb, int offset,
1341 packet_info *pinfo, proto_tree *tree,
1344 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1345 hf_srvsvc_file_id, NULL);
1350 srvsvc_dissect_FILE_INFO_2_array(tvbuff_t *tvb, int offset,
1351 packet_info *pinfo, proto_tree *tree,
1354 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
1355 srvsvc_dissect_FILE_INFO_2);
1361 * IDL typedef struct {
1362 * IDL long EntriesRead;
1363 * IDL [size_is(EntriesRead)] [unique] FILE_INFO_2 *files;
1364 * IDL } FILE_INFO_2_CONTAINER;
1367 srvsvc_dissect_FILE_INFO_2_CONTAINER(tvbuff_t *tvb, int offset,
1368 packet_info *pinfo, proto_tree *tree,
1371 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1372 hf_srvsvc_num_entries, NULL);
1374 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1375 srvsvc_dissect_FILE_INFO_2_array, NDR_POINTER_UNIQUE,
1376 "FILE_INFO_2 array:", -1, 0);
1383 * IDL typedef struct {
1385 * IDL long permissions;
1386 * IDL long num_locks;
1387 * IDL [string] [unique] wchar_t *pathname;
1388 * IDL [string] [unique] wchar_t *username;
1389 * IDL } FILE_INFO_3;
1392 srvsvc_dissect_FILE_INFO_3(tvbuff_t *tvb, int offset,
1393 packet_info *pinfo, proto_tree *tree,
1396 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1397 hf_srvsvc_file_id, NULL);
1399 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1400 hf_srvsvc_perm, NULL);
1402 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1403 hf_srvsvc_file_num_locks, NULL);
1405 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1406 srvsvc_dissect_pointer_UNICODE_STRING,
1407 NDR_POINTER_UNIQUE, "Path",
1410 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1411 srvsvc_dissect_pointer_UNICODE_STRING,
1412 NDR_POINTER_UNIQUE, "User",
1418 srvsvc_dissect_FILE_INFO_3_array(tvbuff_t *tvb, int offset,
1419 packet_info *pinfo, proto_tree *tree,
1422 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
1423 srvsvc_dissect_FILE_INFO_3);
1429 * IDL typedef struct {
1430 * IDL long EntriesRead;
1431 * IDL [size_is(EntriesRead)] [unique] FILE_INFO_3 *files;
1432 * IDL } FILE_INFO_3_CONTAINER;
1435 srvsvc_dissect_FILE_INFO_3_CONTAINER(tvbuff_t *tvb, int offset,
1436 packet_info *pinfo, proto_tree *tree,
1439 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1440 hf_srvsvc_num_entries, NULL);
1442 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1443 srvsvc_dissect_FILE_INFO_3_array, NDR_POINTER_UNIQUE,
1444 "CHARDEV_INFO_3 array:", -1, 0);
1451 * IDL typedef [switch_type(long)] union {
1452 * IDL [case(2)] [unique] FILE_INFO_2_CONTAINER *file0;
1453 * IDL [case(3)] [unique] FILE_INFO_3_CONTAINER *file1;
1454 * IDL } FILE_ENUM_UNION;
1457 srvsvc_dissect_FILE_ENUM_UNION(tvbuff_t *tvb, int offset,
1458 packet_info *pinfo, proto_tree *tree,
1465 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_info_level, &level);
1469 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1470 srvsvc_dissect_FILE_INFO_2_CONTAINER,
1471 NDR_POINTER_UNIQUE, "FILE_INFO_2_CONTAINER:",
1475 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1476 srvsvc_dissect_FILE_INFO_3_CONTAINER,
1477 NDR_POINTER_UNIQUE, "FILE_INFO_3_CONTAINER:",
1486 * IDL typedef [switch_type(long)] union {
1487 * IDL [case(2)] [unique] FILE_INFO_2 *file0;
1488 * IDL [case(3)] [unique] FILE_INFO_3 *file1;
1489 * IDL } FILE_INFO_UNION;
1492 srvsvc_dissect_FILE_INFO_UNION(tvbuff_t *tvb, int offset,
1493 packet_info *pinfo, proto_tree *tree,
1500 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_info_level, &level);
1504 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1505 srvsvc_dissect_FILE_INFO_2,
1506 NDR_POINTER_UNIQUE, "FILE_INFO_2:",
1510 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1511 srvsvc_dissect_FILE_INFO_3,
1512 NDR_POINTER_UNIQUE, "FILE_INFO_3:",
1522 * IDL typedef struct {
1524 * IDL FILE_ENUM_UNION files;
1525 * IDL } FILE_ENUM_STRUCT;
1528 srvsvc_dissect_FILE_ENUM_STRUCT(tvbuff_t *tvb, int offset,
1529 packet_info *pinfo, proto_tree *tree,
1532 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1533 hf_srvsvc_info_level, 0);
1535 offset = srvsvc_dissect_FILE_ENUM_UNION(tvb, offset, pinfo, tree, drep);
1542 * IDL long NetrFileEnum(
1543 * IDL [in] [string] [unique] wchar_t *ServerName,
1544 * IDL [in] [string] [unique] wchar_t *Path,
1545 * IDL [in] [string] [unique] wchar_t *UserName,
1546 * IDL [in] [out] [ref] FILE_ENUM_STRUCT *file,
1547 * IDL [in] long MaxLen,
1548 * IDL [out] long num_entries,
1549 * IDL [in] [out] [unique] long *ResumeHandle
1553 srvsvc_dissect_netrfileenum_rqst(tvbuff_t *tvb, int offset,
1554 packet_info *pinfo, proto_tree *tree,
1557 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1558 srvsvc_dissect_pointer_UNICODE_STRING,
1559 NDR_POINTER_UNIQUE, "Server",
1560 hf_srvsvc_server, 0);
1562 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1563 srvsvc_dissect_pointer_UNICODE_STRING,
1564 NDR_POINTER_UNIQUE, "Path",
1567 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1568 srvsvc_dissect_pointer_UNICODE_STRING,
1569 NDR_POINTER_UNIQUE, "User",
1572 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1573 srvsvc_dissect_FILE_ENUM_STRUCT,
1574 NDR_POINTER_REF, "FILE_ENUM_STRUCT:",
1577 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1578 hf_srvsvc_preferred_len, 0);
1580 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1581 srvsvc_dissect_ENUM_HANDLE,
1582 NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
1587 srvsvc_dissect_netrfileenum_reply(tvbuff_t *tvb, int offset,
1588 packet_info *pinfo, proto_tree *tree,
1591 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1592 srvsvc_dissect_FILE_ENUM_STRUCT,
1593 NDR_POINTER_REF, "FILE_ENUM_STRUCT:",
1596 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1597 hf_srvsvc_num_entries, NULL);
1599 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1600 srvsvc_dissect_ENUM_HANDLE,
1601 NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
1603 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
1604 hf_srvsvc_rc, NULL);
1611 * IDL long NetrFileGetInfo(
1612 * IDL [in] [string] [unique] wchar_t *ServerName,
1613 * IDL [in] long fileid,
1614 * IDL [in] long level,
1615 * IDL [out] [ref] FILE_INFO_UNION *file
1619 srvsvc_dissect_netrfilegetinfo_rqst(tvbuff_t *tvb, int offset,
1620 packet_info *pinfo, proto_tree *tree,
1623 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1624 srvsvc_dissect_pointer_UNICODE_STRING,
1625 NDR_POINTER_UNIQUE, "Server",
1626 hf_srvsvc_server, 0);
1628 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1629 hf_srvsvc_file_id, NULL);
1631 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1632 hf_srvsvc_info_level, 0);
1637 srvsvc_dissect_netrfilegetinfo_reply(tvbuff_t *tvb, int offset,
1638 packet_info *pinfo, proto_tree *tree,
1641 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1642 srvsvc_dissect_FILE_INFO_UNION,
1643 NDR_POINTER_REF, "FILE_INFO_UNION:", -1, 0);
1645 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
1646 hf_srvsvc_rc, NULL);
1653 * IDL long NetrFileClose(
1654 * IDL [in] [string] [unique] wchar_t *ServerName,
1655 * IDL [in] long fileid,
1659 srvsvc_dissect_netrfileclose_rqst(tvbuff_t *tvb, int offset,
1660 packet_info *pinfo, proto_tree *tree,
1663 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1664 srvsvc_dissect_pointer_UNICODE_STRING,
1665 NDR_POINTER_UNIQUE, "Server",
1666 hf_srvsvc_server, 0);
1668 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1669 hf_srvsvc_file_id, NULL);
1674 srvsvc_dissect_netrfileclose_reply(tvbuff_t *tvb, int offset,
1675 packet_info *pinfo, proto_tree *tree,
1678 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
1679 hf_srvsvc_rc, NULL);
1685 * IDL typedef struct {
1686 * IDL [string] [unique] wchar_t *ses;
1687 * IDL } SESSION_INFO_0;
1690 srvsvc_dissect_SESSION_INFO_0(tvbuff_t *tvb, int offset,
1691 packet_info *pinfo, proto_tree *tree,
1694 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1695 srvsvc_dissect_pointer_UNICODE_STRING,
1696 NDR_POINTER_UNIQUE, "Session",
1697 hf_srvsvc_session, 0);
1702 srvsvc_dissect_SESSION_INFO_0_array(tvbuff_t *tvb, int offset,
1703 packet_info *pinfo, proto_tree *tree,
1706 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
1707 srvsvc_dissect_SESSION_INFO_0);
1713 * IDL typedef struct {
1714 * IDL long EntriesRead;
1715 * IDL [size_is(EntriesRead)] [unique] SESSION_INFO_0 *ses;
1716 * IDL } SESSION_INFO_0_CONTAINER;
1719 srvsvc_dissect_SESSION_INFO_0_CONTAINER(tvbuff_t *tvb, int offset,
1720 packet_info *pinfo, proto_tree *tree,
1723 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1724 hf_srvsvc_num_entries, NULL);
1726 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1727 srvsvc_dissect_SESSION_INFO_0_array, NDR_POINTER_UNIQUE,
1728 "SESSION_INFO_0 array:", -1, 0);
1734 * IDL typedef struct {
1735 * IDL [string] [unique] wchar_t *ses;
1736 * IDL [string] [unique] wchar_t *user;
1737 * IDL long num_open;
1739 * IDL long idle_time;
1740 * IDL long user_flags
1741 * IDL } SESSION_INFO_1;
1744 srvsvc_dissect_SESSION_INFO_1(tvbuff_t *tvb, int offset,
1745 packet_info *pinfo, proto_tree *tree,
1748 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1749 srvsvc_dissect_pointer_UNICODE_STRING,
1750 NDR_POINTER_UNIQUE, "Session",
1751 hf_srvsvc_session, 0);
1753 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1754 srvsvc_dissect_pointer_UNICODE_STRING,
1755 NDR_POINTER_UNIQUE, "User",
1758 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1759 hf_srvsvc_session_num_opens, NULL);
1761 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1762 hf_srvsvc_session_time, NULL);
1764 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1765 hf_srvsvc_session_idle_time, NULL);
1767 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1768 hf_srvsvc_session_user_flags, NULL);
1773 srvsvc_dissect_SESSION_INFO_1_array(tvbuff_t *tvb, int offset,
1774 packet_info *pinfo, proto_tree *tree,
1777 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
1778 srvsvc_dissect_SESSION_INFO_1);
1784 * IDL typedef struct {
1785 * IDL long EntriesRead;
1786 * IDL [size_is(EntriesRead)] [unique] SESSION_INFO_1 *ses;
1787 * IDL } SESSION_INFO_1_CONTAINER;
1790 srvsvc_dissect_SESSION_INFO_1_CONTAINER(tvbuff_t *tvb, int offset,
1791 packet_info *pinfo, proto_tree *tree,
1794 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1795 hf_srvsvc_num_entries, NULL);
1797 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1798 srvsvc_dissect_SESSION_INFO_1_array, NDR_POINTER_UNIQUE,
1799 "SESSION_INFO_1 array:", -1, 0);
1805 * IDL typedef struct {
1806 * IDL [string] [unique] wchar_t *ses;
1807 * IDL [string] [unique] wchar_t *user;
1808 * IDL long num_open;
1810 * IDL long idle_time;
1811 * IDL long user_flags
1812 * IDL [string] [unique] wchar_t *clienttype;
1813 * IDL } SESSION_INFO_2;
1816 srvsvc_dissect_SESSION_INFO_2(tvbuff_t *tvb, int offset,
1817 packet_info *pinfo, proto_tree *tree,
1820 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1821 srvsvc_dissect_pointer_UNICODE_STRING,
1822 NDR_POINTER_UNIQUE, "Session",
1823 hf_srvsvc_session, 0);
1825 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1826 srvsvc_dissect_pointer_UNICODE_STRING,
1827 NDR_POINTER_UNIQUE, "User",
1830 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1831 hf_srvsvc_session_num_opens, NULL);
1833 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1834 hf_srvsvc_session_time, NULL);
1836 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1837 hf_srvsvc_session_idle_time, NULL);
1839 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1840 hf_srvsvc_session_user_flags, NULL);
1842 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1843 srvsvc_dissect_pointer_UNICODE_STRING,
1844 NDR_POINTER_UNIQUE, "Client Type:",
1845 hf_srvsvc_client_type, 0);
1850 srvsvc_dissect_SESSION_INFO_2_array(tvbuff_t *tvb, int offset,
1851 packet_info *pinfo, proto_tree *tree,
1854 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
1855 srvsvc_dissect_SESSION_INFO_2);
1861 * IDL typedef struct {
1862 * IDL long EntriesRead;
1863 * IDL [size_is(EntriesRead)] [unique] SESSION_INFO_2 *ses;
1864 * IDL } SESSION_INFO_2_CONTAINER;
1867 srvsvc_dissect_SESSION_INFO_2_CONTAINER(tvbuff_t *tvb, int offset,
1868 packet_info *pinfo, proto_tree *tree,
1871 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1872 hf_srvsvc_num_entries, NULL);
1874 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1875 srvsvc_dissect_SESSION_INFO_2_array, NDR_POINTER_UNIQUE,
1876 "SESSION_INFO_2 array:", -1, 0);
1882 * IDL typedef struct {
1883 * IDL [string] [unique] wchar_t *ses;
1884 * IDL [string] [unique] wchar_t *user;
1886 * IDL long idle_time;
1887 * IDL } SESSION_INFO_10;
1890 srvsvc_dissect_SESSION_INFO_10(tvbuff_t *tvb, int offset,
1891 packet_info *pinfo, proto_tree *tree,
1894 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1895 srvsvc_dissect_pointer_UNICODE_STRING,
1896 NDR_POINTER_UNIQUE, "Session",
1897 hf_srvsvc_session, 0);
1899 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1900 srvsvc_dissect_pointer_UNICODE_STRING,
1901 NDR_POINTER_UNIQUE, "User",
1904 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1905 hf_srvsvc_session_time, NULL);
1907 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1908 hf_srvsvc_session_idle_time, NULL);
1913 srvsvc_dissect_SESSION_INFO_10_array(tvbuff_t *tvb, int offset,
1914 packet_info *pinfo, proto_tree *tree,
1917 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
1918 srvsvc_dissect_SESSION_INFO_10);
1924 * IDL typedef struct {
1925 * IDL long EntriesRead;
1926 * IDL [size_is(EntriesRead)] [unique] SESSION_INFO_10 *ses;
1927 * IDL } SESSION_INFO_10_CONTAINER;
1930 srvsvc_dissect_SESSION_INFO_10_CONTAINER(tvbuff_t *tvb, int offset,
1931 packet_info *pinfo, proto_tree *tree,
1934 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1935 hf_srvsvc_num_entries, NULL);
1937 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1938 srvsvc_dissect_SESSION_INFO_10_array, NDR_POINTER_UNIQUE,
1939 "SESSION_INFO_10 array:", -1, 0);
1945 * IDL typedef struct {
1946 * IDL [string] [unique] wchar_t *ses;
1947 * IDL [string] [unique] wchar_t *user;
1948 * IDL long num_open;
1950 * IDL long idle_time;
1951 * IDL long user_flags
1952 * IDL [string] [unique] wchar_t *clienttype;
1953 * IDL [string] [unique] wchar_t *transport;
1954 * IDL } SESSION_INFO_502;
1957 srvsvc_dissect_SESSION_INFO_502(tvbuff_t *tvb, int offset,
1958 packet_info *pinfo, proto_tree *tree,
1961 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1962 srvsvc_dissect_pointer_UNICODE_STRING,
1963 NDR_POINTER_UNIQUE, "Session",
1964 hf_srvsvc_session, 0);
1966 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1967 srvsvc_dissect_pointer_UNICODE_STRING,
1968 NDR_POINTER_UNIQUE, "User",
1971 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1972 hf_srvsvc_session_num_opens, NULL);
1974 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1975 hf_srvsvc_session_time, NULL);
1977 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1978 hf_srvsvc_session_idle_time, NULL);
1980 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1981 hf_srvsvc_session_user_flags, NULL);
1983 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1984 srvsvc_dissect_pointer_UNICODE_STRING,
1985 NDR_POINTER_UNIQUE, "Client Type:",
1986 hf_srvsvc_client_type, 0);
1988 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1989 srvsvc_dissect_pointer_UNICODE_STRING,
1990 NDR_POINTER_UNIQUE, "Transport:",
1991 hf_srvsvc_transport, 0);
1996 srvsvc_dissect_SESSION_INFO_502_array(tvbuff_t *tvb, int offset,
1997 packet_info *pinfo, proto_tree *tree,
2000 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
2001 srvsvc_dissect_SESSION_INFO_502);
2007 * IDL typedef struct {
2008 * IDL long EntriesRead;
2009 * IDL [size_is(EntriesRead)] [unique] SESSION_INFO_502 *ses;
2010 * IDL } SESSION_INFO_502_CONTAINER;
2013 srvsvc_dissect_SESSION_INFO_502_CONTAINER(tvbuff_t *tvb, int offset,
2014 packet_info *pinfo, proto_tree *tree,
2017 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2018 hf_srvsvc_num_entries, NULL);
2020 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2021 srvsvc_dissect_SESSION_INFO_502_array, NDR_POINTER_UNIQUE,
2022 "SESSION_INFO_502 array:", -1, 0);
2028 * IDL typedef [switch_type(long)] union {
2029 * IDL [case(0)] [unique] SESSION_INFO_0_CONTAINER *ses0;
2030 * IDL [case(1)] [unique] SESSION_INFO_1_CONTAINER *ses1;
2031 * IDL [case(2)] [unique] SESSION_INFO_2_CONTAINER *ses2;
2032 * IDL [case(10)] [unique] SESSION_INFO_10_CONTAINER *ses10;
2033 * IDL [case(502)] [unique] SESSION_INFO_502_CONTAINER *ses502;
2034 * IDL } SESSION_ENUM_UNION;
2037 srvsvc_dissect_SESSION_ENUM_UNION(tvbuff_t *tvb, int offset,
2038 packet_info *pinfo, proto_tree *tree,
2045 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_info_level, &level);
2049 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2050 srvsvc_dissect_SESSION_INFO_0_CONTAINER,
2051 NDR_POINTER_UNIQUE, "SESSION_INFO_0_CONTAINER:",
2055 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2056 srvsvc_dissect_SESSION_INFO_1_CONTAINER,
2057 NDR_POINTER_UNIQUE, "SESSION_INFO_1_CONTAINER:",
2061 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2062 srvsvc_dissect_SESSION_INFO_2_CONTAINER,
2063 NDR_POINTER_UNIQUE, "SESSION_INFO_2_CONTAINER:",
2067 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2068 srvsvc_dissect_SESSION_INFO_10_CONTAINER,
2069 NDR_POINTER_UNIQUE, "SESSION_INFO_10_CONTAINER:",
2073 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2074 srvsvc_dissect_SESSION_INFO_502_CONTAINER,
2075 NDR_POINTER_UNIQUE, "SESSION_INFO_502_CONTAINER:",
2084 * IDL typedef struct {
2086 * IDL SESSION_ENUM_UNION ses;
2087 * IDL } SESSION_ENUM_STRUCT;
2090 srvsvc_dissect_SESSION_ENUM_STRUCT(tvbuff_t *tvb, int offset,
2091 packet_info *pinfo, proto_tree *tree,
2094 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2095 hf_srvsvc_info_level, 0);
2097 offset = srvsvc_dissect_SESSION_ENUM_UNION(tvb, offset, pinfo, tree, drep);
2104 * IDL long NetrSessionEnum(
2105 * IDL [in] [string] [unique] wchar_t *ServerName,
2106 * IDL [in] [string] [unique] wchar_t *ClientName,
2107 * IDL [in] [string] [unique] wchar_t *UserName,
2108 * IDL [in] [out] [ref] SESSION_ENUM_STRUCT *ses,
2109 * IDL [in] long maxlen,
2110 * IDL [out] long num_sessions,
2111 * IDL [in] [out] [unique] long *resumehandle,
2115 srvsvc_dissect_netrsessionenum_rqst(tvbuff_t *tvb, int offset,
2116 packet_info *pinfo, proto_tree *tree,
2119 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2120 srvsvc_dissect_pointer_UNICODE_STRING,
2121 NDR_POINTER_UNIQUE, "Server",
2122 hf_srvsvc_server, 0);
2124 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2125 srvsvc_dissect_pointer_UNICODE_STRING,
2126 NDR_POINTER_UNIQUE, "Computer",
2127 hf_srvsvc_computer, 0);
2129 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2130 srvsvc_dissect_pointer_UNICODE_STRING,
2131 NDR_POINTER_UNIQUE, "User",
2134 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2135 srvsvc_dissect_SESSION_ENUM_STRUCT,
2136 NDR_POINTER_REF, "SESSION_ENUM_STRUCT",
2139 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2140 hf_srvsvc_preferred_len, 0);
2142 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2143 srvsvc_dissect_ENUM_HANDLE,
2144 NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
2149 srvsvc_dissect_netrsessionenum_reply(tvbuff_t *tvb, int offset,
2150 packet_info *pinfo, proto_tree *tree,
2153 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2154 srvsvc_dissect_SESSION_ENUM_STRUCT,
2155 NDR_POINTER_REF, "SESSION_ENUM_STRUCT",
2158 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2159 hf_srvsvc_num_entries, NULL);
2161 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2162 srvsvc_dissect_ENUM_HANDLE,
2163 NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
2165 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
2166 hf_srvsvc_rc, NULL);
2173 * IDL long NetrSessionDel(
2174 * IDL [in] [string] [unique] wchar_t *ServerName,
2175 * IDL [in] [string] [ref] wchar_t *ClientName,
2176 * IDL [in] [string] [ref] wchar_t *UserName,
2180 srvsvc_dissect_netrsessiondel_rqst(tvbuff_t *tvb, int offset,
2181 packet_info *pinfo, proto_tree *tree,
2184 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2185 srvsvc_dissect_pointer_UNICODE_STRING,
2186 NDR_POINTER_UNIQUE, "Server",
2187 hf_srvsvc_server, 0);
2189 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2190 srvsvc_dissect_pointer_UNICODE_STRING,
2191 NDR_POINTER_REF, "Computer",
2192 hf_srvsvc_computer, 0);
2194 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2195 srvsvc_dissect_pointer_UNICODE_STRING,
2196 NDR_POINTER_REF, "User",
2202 srvsvc_dissect_netrsessiondel_reply(tvbuff_t *tvb, int offset,
2203 packet_info *pinfo, proto_tree *tree,
2206 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
2207 hf_srvsvc_rc, NULL);
2214 * IDL typedef struct {
2215 * IDL [string] [unique] wchar_t *share;
2216 * IDL } SHARE_INFO_0;
2219 srvsvc_dissect_SHARE_INFO_0(tvbuff_t *tvb, int offset,
2220 packet_info *pinfo, proto_tree *tree,
2223 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2224 srvsvc_dissect_pointer_UNICODE_STRING,
2225 NDR_POINTER_UNIQUE, "Share",
2226 hf_srvsvc_share, 0);
2231 srvsvc_dissect_SHARE_INFO_0_array(tvbuff_t *tvb, int offset,
2232 packet_info *pinfo, proto_tree *tree,
2235 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
2236 srvsvc_dissect_SHARE_INFO_0);
2242 * IDL typedef struct {
2243 * IDL long EntriesRead;
2244 * IDL [size_is(EntriesRead)] [unique] SHARE_INFO_0 *shares;
2245 * IDL } SHARE_INFO_0_CONTAINER;
2248 srvsvc_dissect_SHARE_INFO_0_CONTAINER(tvbuff_t *tvb, int offset,
2249 packet_info *pinfo, proto_tree *tree,
2252 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2253 hf_srvsvc_num_entries, NULL);
2255 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2256 srvsvc_dissect_SHARE_INFO_0_array, NDR_POINTER_UNIQUE,
2257 "SHARE_INFO_0 array:", -1, 0);
2263 IDL typedef struct {
2264 IDL [unique] [string] wchar_t *share;
2266 IDL [unique] [string] wchar_t *comment;
2270 srvsvc_dissect_SHARE_INFO_1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, char *drep)
2272 proto_item *item = NULL;
2273 proto_tree *tree = NULL;
2277 di=pinfo->private_data;
2279 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "Share");
2280 tree = proto_item_add_subtree(item, ett_srvsvc_share_info_1);
2283 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2284 srvsvc_dissect_pointer_UNICODE_STRING, NDR_POINTER_UNIQUE,
2285 "Share", hf_srvsvc_share, di->levels);
2287 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2288 hf_srvsvc_share_type, NULL);
2290 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2291 srvsvc_dissect_pointer_UNICODE_STRING, NDR_POINTER_UNIQUE,
2292 "Comment", hf_srvsvc_comment, 0);
2297 srvsvc_dissect_SHARE_INFO_1_array(tvbuff_t *tvb, int offset,
2298 packet_info *pinfo, proto_tree *tree,
2301 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
2302 srvsvc_dissect_SHARE_INFO_1);
2308 * IDL typedef struct {
2309 * IDL long EntriesRead;
2310 * IDL [size_is(EntriesRead)] [unique] SHARE_INFO_1 *shares;
2311 * IDL } SHARE_INFO_1_CONTAINER;
2314 srvsvc_dissect_SHARE_INFO_1_CONTAINER(tvbuff_t *tvb, int offset,
2315 packet_info *pinfo, proto_tree *tree,
2318 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2319 hf_srvsvc_num_entries, NULL);
2321 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2322 srvsvc_dissect_SHARE_INFO_1_array, NDR_POINTER_UNIQUE,
2323 "SHARE_INFO_1 array:", -1, 3);
2329 IDL typedef struct {
2330 IDL [unique] [string] wchar_t *share;
2332 IDL [unique] [string] wchar_t *comment;
2333 IDL long permissions;
2335 IDL long current_uses;
2336 IDL [unique] [string] wchar_t *path;
2337 IDL [unique] [string] wchar_t *passwd;
2341 srvsvc_dissect_SHARE_INFO_2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, char *drep)
2343 proto_item *item = NULL;
2344 proto_tree *tree = NULL;
2348 di=pinfo->private_data;
2350 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "Share");
2351 tree = proto_item_add_subtree(item, ett_srvsvc_share_info_2);
2354 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2355 srvsvc_dissect_pointer_UNICODE_STRING, NDR_POINTER_UNIQUE,
2356 "Share", hf_srvsvc_share, di->levels);
2358 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2359 hf_srvsvc_share_type, NULL);
2361 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2362 srvsvc_dissect_pointer_UNICODE_STRING, NDR_POINTER_UNIQUE,
2363 "Comment", hf_srvsvc_comment, 0);
2365 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2366 hf_srvsvc_perm, NULL);
2368 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2369 hf_srvsvc_max_uses, NULL);
2371 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2372 hf_srvsvc_cur_uses, NULL);
2374 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2375 srvsvc_dissect_pointer_UNICODE_STRING,
2376 NDR_POINTER_UNIQUE, "Path",
2379 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2380 srvsvc_dissect_pointer_UNICODE_STRING,
2381 NDR_POINTER_UNIQUE, "Passwd",
2382 hf_srvsvc_share_passwd, 0);
2387 srvsvc_dissect_SHARE_INFO_2_array(tvbuff_t *tvb, int offset,
2388 packet_info *pinfo, proto_tree *tree,
2391 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
2392 srvsvc_dissect_SHARE_INFO_2);
2398 * IDL typedef struct {
2399 * IDL long EntriesRead;
2400 * IDL [size_is(EntriesRead)] [unique] SHARE_INFO_2 *shares;
2401 * IDL } SHARE_INFO_2_CONTAINER;
2404 srvsvc_dissect_SHARE_INFO_2_CONTAINER(tvbuff_t *tvb, int offset,
2405 packet_info *pinfo, proto_tree *tree,
2408 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2409 hf_srvsvc_num_entries, NULL);
2411 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2412 srvsvc_dissect_SHARE_INFO_2_array, NDR_POINTER_UNIQUE,
2413 "SHARE_INFO_2 array:", -1, 0);
2419 IDL typedef struct {
2420 IDL [unique] [string] wchar_t *share;
2422 IDL [unique] [string] wchar_t *comment;
2424 IDL } SHARE_INFO_501;
2427 srvsvc_dissect_SHARE_INFO_501(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, char *drep)
2429 proto_item *item = NULL;
2430 proto_tree *tree = NULL;
2434 di=pinfo->private_data;
2436 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "Share");
2437 tree = proto_item_add_subtree(item, ett_srvsvc_share_info_501);
2440 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2441 srvsvc_dissect_pointer_UNICODE_STRING, NDR_POINTER_UNIQUE,
2442 "Share", hf_srvsvc_share, di->levels);
2444 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2445 hf_srvsvc_share_type, NULL);
2447 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2448 srvsvc_dissect_pointer_UNICODE_STRING, NDR_POINTER_UNIQUE,
2449 "Comment", hf_srvsvc_comment, 0);
2451 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2452 hf_srvsvc_policy, NULL);
2457 srvsvc_dissect_SHARE_INFO_501_array(tvbuff_t *tvb, int offset,
2458 packet_info *pinfo, proto_tree *tree,
2461 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
2462 srvsvc_dissect_SHARE_INFO_501);
2468 * IDL typedef struct {
2469 * IDL long EntriesRead;
2470 * IDL [size_is(EntriesRead)] [unique] SHARE_INFO_501 *shares;
2471 * IDL } SHARE_INFO_501_CONTAINER;
2474 srvsvc_dissect_SHARE_INFO_501_CONTAINER(tvbuff_t *tvb, int offset,
2475 packet_info *pinfo, proto_tree *tree,
2478 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2479 hf_srvsvc_num_entries, NULL);
2481 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2482 srvsvc_dissect_SHARE_INFO_501_array, NDR_POINTER_UNIQUE,
2483 "SHARE_INFO_501 array:", -1, 0);
2490 IDL typedef struct {
2491 IDL [unique] [string] wchar_t *share;
2493 IDL [unique] [string] wchar_t *comment;
2494 IDL long permissions;
2496 IDL long current_uses;
2497 IDL [unique] [string] wchar_t *path;
2498 IDL [unique] [string] wchar_t *passwd;
2500 IDL SECDESC [unique] *securitysecriptor; 4byte-len followed by bytestring
2501 IDL } SHARE_INFO_502;
2504 srvsvc_dissect_SHARE_INFO_502(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, char *drep)
2506 proto_item *item = NULL;
2507 proto_tree *tree = NULL;
2511 di=pinfo->private_data;
2513 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "Share");
2514 tree = proto_item_add_subtree(item, ett_srvsvc_share_info_502);
2517 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2518 srvsvc_dissect_pointer_UNICODE_STRING, NDR_POINTER_UNIQUE,
2519 "Share", hf_srvsvc_share, di->levels);
2521 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2522 hf_srvsvc_share_type, NULL);
2524 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2525 srvsvc_dissect_pointer_UNICODE_STRING, NDR_POINTER_UNIQUE,
2526 "Comment", hf_srvsvc_comment, 0);
2528 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2529 hf_srvsvc_perm, NULL);
2531 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2532 hf_srvsvc_max_uses, NULL);
2534 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2535 hf_srvsvc_cur_uses, NULL);
2537 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2538 srvsvc_dissect_pointer_UNICODE_STRING,
2539 NDR_POINTER_UNIQUE, "Path",
2542 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2543 srvsvc_dissect_pointer_UNICODE_STRING,
2544 NDR_POINTER_UNIQUE, "Passwd",
2545 hf_srvsvc_share_passwd, 0);
2547 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2548 hf_srvsvc_reserved, NULL);
2550 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2551 lsa_dissect_LSA_SECURITY_DESCRIPTOR_data, NDR_POINTER_UNIQUE,
2552 "LSA SECURITY DESCRIPTOR data:", -1, 0);
2557 srvsvc_dissect_SHARE_INFO_502_array(tvbuff_t *tvb, int offset,
2558 packet_info *pinfo, proto_tree *tree,
2561 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
2562 srvsvc_dissect_SHARE_INFO_502);
2568 * IDL typedef struct {
2569 * IDL long EntriesRead;
2570 * IDL [size_is(EntriesRead)] [unique] SHARE_INFO_502 *shares;
2571 * IDL } SHARE_INFO_502_CONTAINER;
2574 srvsvc_dissect_SHARE_INFO_502_CONTAINER(tvbuff_t *tvb, int offset,
2575 packet_info *pinfo, proto_tree *tree,
2578 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2579 hf_srvsvc_num_entries, NULL);
2581 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2582 srvsvc_dissect_SHARE_INFO_502_array, NDR_POINTER_UNIQUE,
2583 "SHARE_INFO_502 array:", -1, 0);
2589 IDL typedef struct {
2590 IDL [unique] [string] wchar_t *comment;
2591 IDL } SHARE_INFO_1004;
2594 srvsvc_dissect_SHARE_INFO_1004(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, char *drep)
2596 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2597 srvsvc_dissect_pointer_UNICODE_STRING, NDR_POINTER_UNIQUE,
2598 "Comment", hf_srvsvc_comment, 0);
2603 srvsvc_dissect_SHARE_INFO_1004_array(tvbuff_t *tvb, int offset,
2604 packet_info *pinfo, proto_tree *tree,
2607 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
2608 srvsvc_dissect_SHARE_INFO_1004);
2614 * IDL typedef struct {
2615 * IDL long EntriesRead;
2616 * IDL [size_is(EntriesRead)] [unique] SHARE_INFO_1004 *shares;
2617 * IDL } SHARE_INFO_1004_CONTAINER;
2620 srvsvc_dissect_SHARE_INFO_1004_CONTAINER(tvbuff_t *tvb, int offset,
2621 packet_info *pinfo, proto_tree *tree,
2624 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2625 hf_srvsvc_num_entries, NULL);
2627 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2628 srvsvc_dissect_SHARE_INFO_1004_array, NDR_POINTER_UNIQUE,
2629 "SHARE_INFO_1004 array:", -1, 0);
2635 IDL typedef struct {
2636 IDL long dfs_root_flags;
2637 IDL } SHARE_INFO_1005;
2640 srvsvc_dissect_SHARE_INFO_1005(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, char *drep)
2642 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2643 hf_srvsvc_dfs_root_flags, NULL);
2648 srvsvc_dissect_SHARE_INFO_1005_array(tvbuff_t *tvb, int offset,
2649 packet_info *pinfo, proto_tree *tree,
2652 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
2653 srvsvc_dissect_SHARE_INFO_1005);
2659 * IDL typedef struct {
2660 * IDL long EntriesRead;
2661 * IDL [size_is(EntriesRead)] [unique] SHARE_INFO_1005 *shares;
2662 * IDL } SHARE_INFO_1005_CONTAINER;
2665 srvsvc_dissect_SHARE_INFO_1005_CONTAINER(tvbuff_t *tvb, int offset,
2666 packet_info *pinfo, proto_tree *tree,
2669 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2670 hf_srvsvc_num_entries, NULL);
2672 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2673 srvsvc_dissect_SHARE_INFO_1005_array, NDR_POINTER_UNIQUE,
2674 "SHARE_INFO_1005 array:", -1, 0);
2681 IDL typedef struct {
2683 IDL } SHARE_INFO_1006;
2686 srvsvc_dissect_SHARE_INFO_1006(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, char *drep)
2688 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2689 hf_srvsvc_max_uses, NULL);
2694 srvsvc_dissect_SHARE_INFO_1006_array(tvbuff_t *tvb, int offset,
2695 packet_info *pinfo, proto_tree *tree,
2698 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
2699 srvsvc_dissect_SHARE_INFO_1006);
2705 * IDL typedef struct {
2706 * IDL long EntriesRead;
2707 * IDL [size_is(EntriesRead)] [unique] SHARE_INFO_1006 *shares;
2708 * IDL } SHARE_INFO_1006_CONTAINER;
2711 srvsvc_dissect_SHARE_INFO_1006_CONTAINER(tvbuff_t *tvb, int offset,
2712 packet_info *pinfo, proto_tree *tree,
2715 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2716 hf_srvsvc_num_entries, NULL);
2718 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2719 srvsvc_dissect_SHARE_INFO_1006_array, NDR_POINTER_UNIQUE,
2720 "SHARE_INFO_1006 array:", -1, 0);
2727 IDL typedef struct {
2729 IDL [unique] [string] wchar_t *alternate_directory_name;
2730 IDL } SHARE_INFO_1007;
2733 srvsvc_dissect_SHARE_INFO_1007(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, char *drep)
2735 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2736 hf_srvsvc_share_flags, NULL);
2738 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2739 srvsvc_dissect_pointer_UNICODE_STRING,
2740 NDR_POINTER_UNIQUE, "Alternate Name",
2741 hf_srvsvc_share_alternate_name, 0);
2746 srvsvc_dissect_SHARE_INFO_1007_array(tvbuff_t *tvb, int offset,
2747 packet_info *pinfo, proto_tree *tree,
2750 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
2751 srvsvc_dissect_SHARE_INFO_1007);
2757 * IDL typedef struct {
2758 * IDL long EntriesRead;
2759 * IDL [size_is(EntriesRead)] [unique] SHARE_INFO_1007 *shares;
2760 * IDL } SHARE_INFO_1007_CONTAINER;
2763 srvsvc_dissect_SHARE_INFO_1007_CONTAINER(tvbuff_t *tvb, int offset,
2764 packet_info *pinfo, proto_tree *tree,
2767 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2768 hf_srvsvc_num_entries, NULL);
2770 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2771 srvsvc_dissect_SHARE_INFO_1007_array, NDR_POINTER_UNIQUE,
2772 "SHARE_INFO_1007 array:", -1, 0);
2778 IDL typedef struct {
2779 IDL SECDESC [unique] *securitysecriptor; 4byte-len followed by bytestring
2780 IDL } SHARE_INFO_1501;
2783 srvsvc_dissect_SHARE_INFO_1501(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, char *drep)
2785 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2786 lsa_dissect_LSA_SECURITY_DESCRIPTOR_data, NDR_POINTER_UNIQUE,
2787 "LSA SECURITY DESCRIPTOR data:", -1, 0);
2792 srvsvc_dissect_SHARE_INFO_1501_array(tvbuff_t *tvb, int offset,
2793 packet_info *pinfo, proto_tree *tree,
2796 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
2797 srvsvc_dissect_SHARE_INFO_1501);
2803 * IDL typedef struct {
2804 * IDL long EntriesRead;
2805 * IDL [size_is(EntriesRead)] [unique] SHARE_INFO_1501 *shares;
2806 * IDL } SHARE_INFO_1501_CONTAINER;
2809 srvsvc_dissect_SHARE_INFO_1501_CONTAINER(tvbuff_t *tvb, int offset,
2810 packet_info *pinfo, proto_tree *tree,
2813 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2814 hf_srvsvc_num_entries, NULL);
2816 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2817 srvsvc_dissect_SHARE_INFO_1501_array, NDR_POINTER_UNIQUE,
2818 "SHARE_INFO_1501 array:", -1, 0);
2825 * IDL typedef [switch_type(long)] union {
2826 * IDL [case(0)] [unique] SHARE_INFO_0 *share0;
2827 * IDL [case(1)] [unique] SHARE_INFO_1 *share1;
2828 * IDL [case(2)] [unique] SHARE_INFO_2 *share2;
2829 * IDL [case(501)] [unique] SHARE_INFO_501 *share501;
2830 * IDL [case(502)] [unique] SHARE_INFO_502 *share502;
2831 * IDL [case(1004)] [unique] SHARE_INFO_1004 *share1004;
2832 * IDL [case(1005)] [unique] SHARE_INFO_1005 *share1005;
2833 * IDL [case(1006)] [unique] SHARE_INFO_1006 *share1006;
2834 * IDL [case(1007)] [unique] SHARE_INFO_1007 *share1007;
2835 * IDL [case(1501)] [unique] SHARE_INFO_1501 *share1501;
2836 * IDL } SHARE_INFO_UNION;
2839 srvsvc_dissect_SHARE_INFO_UNION(tvbuff_t *tvb, int offset,
2840 packet_info *pinfo, proto_tree *tree,
2847 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_info_level, &level);
2851 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2852 srvsvc_dissect_SHARE_INFO_0,
2853 NDR_POINTER_UNIQUE, "SHARE_INFO_0:",
2857 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2858 srvsvc_dissect_SHARE_INFO_1,
2859 NDR_POINTER_UNIQUE, "SHARE_INFO_1:",
2863 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2864 srvsvc_dissect_SHARE_INFO_2,
2865 NDR_POINTER_UNIQUE, "SHARE_INFO_2:",
2869 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2870 srvsvc_dissect_SHARE_INFO_501,
2871 NDR_POINTER_UNIQUE, "SHARE_INFO_501:",
2875 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2876 srvsvc_dissect_SHARE_INFO_502,
2877 NDR_POINTER_UNIQUE, "SHARE_INFO_502:",
2881 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2882 srvsvc_dissect_SHARE_INFO_1004,
2883 NDR_POINTER_UNIQUE, "SHARE_INFO_1004:",
2887 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2888 srvsvc_dissect_SHARE_INFO_1005,
2889 NDR_POINTER_UNIQUE, "SHARE_INFO_1005:",
2893 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2894 srvsvc_dissect_SHARE_INFO_1006,
2895 NDR_POINTER_UNIQUE, "SHARE_INFO_1006:",
2899 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2900 srvsvc_dissect_SHARE_INFO_1007,
2901 NDR_POINTER_UNIQUE, "SHARE_INFO_1007:",
2905 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2906 srvsvc_dissect_SHARE_INFO_1501,
2907 NDR_POINTER_UNIQUE, "SHARE_INFO_1501:",
2917 * IDL long NetrShareAdd(
2918 * IDL [in] [string] [unique] wchar_t *ServerName,
2919 * IDL [in] long Level,
2920 * IDL [in] [ref] SHARE_INFO_UNION *share,
2921 * IDL [in] [out] [unique] long *ParmError
2925 srvsvc_dissect_netrshareadd_rqst(tvbuff_t *tvb, int offset,
2926 packet_info *pinfo, proto_tree *tree,
2929 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2930 srvsvc_dissect_pointer_UNICODE_STRING,
2931 NDR_POINTER_UNIQUE, "Server",
2932 hf_srvsvc_server, 0);
2934 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2935 hf_srvsvc_info_level, 0);
2937 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2938 srvsvc_dissect_SHARE_INFO_UNION,
2939 NDR_POINTER_REF, "SHARE_INFO_UNION:",
2942 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2943 srvsvc_dissect_pointer_long, NDR_POINTER_UNIQUE,
2944 "Parameter Error:", hf_srvsvc_parm_error, 0);
2949 srvsvc_dissect_netrshareadd_reply(tvbuff_t *tvb, int offset,
2950 packet_info *pinfo, proto_tree *tree,
2953 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2954 srvsvc_dissect_pointer_long, NDR_POINTER_UNIQUE,
2955 "Parameter Error:", hf_srvsvc_parm_error, 0);
2957 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
2958 hf_srvsvc_rc, NULL);
2965 * IDL typedef [switch_type(long)] union {
2966 * IDL [case(0)] [unique] SHARE_INFO_0_CONTAINER *share0;
2967 * IDL [case(1)] [unique] SHARE_INFO_1_CONTAINER *share1;
2968 * IDL [case(2)] [unique] SHARE_INFO_2_CONTAINER *share2;
2969 * IDL [case(501)] [unique] SHARE_INFO_501_CONTAINER *share501;
2970 * IDL [case(502)] [unique] SHARE_INFO_502_CONTAINER *share502;
2971 * IDL [case(1004)] [unique] SHARE_INFO_1004_CONTAINER *share1004;
2972 * IDL [case(1005)] [unique] SHARE_INFO_1005_CONTAINER *share1005;
2973 * IDL [case(1006)] [unique] SHARE_INFO_1006_CONTAINER *share1006;
2974 * IDL [case(1007)] [unique] SHARE_INFO_1007_CONTAINER *share1007;
2975 * IDL [case(1501)] [unique] SHARE_INFO_1501_CONTAINER *share1501;
2976 * IDL } SHARE_ENUM_UNION;
2979 srvsvc_dissect_SHARE_ENUM_UNION(tvbuff_t *tvb, int offset,
2980 packet_info *pinfo, proto_tree *tree,
2987 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_info_level, &level);
2991 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2992 srvsvc_dissect_SHARE_INFO_0_CONTAINER,
2993 NDR_POINTER_UNIQUE, "SHARE_INFO_0_CONTAINER:",
2997 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2998 srvsvc_dissect_SHARE_INFO_1_CONTAINER,
2999 NDR_POINTER_UNIQUE, "SHARE_INFO_1_CONTAINER:",
3003 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3004 srvsvc_dissect_SHARE_INFO_2_CONTAINER,
3005 NDR_POINTER_UNIQUE, "SHARE_INFO_2_CONTAINER:",
3009 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3010 srvsvc_dissect_SHARE_INFO_501_CONTAINER,
3011 NDR_POINTER_UNIQUE, "SHARE_INFO_501_CONTAINER:",
3015 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3016 srvsvc_dissect_SHARE_INFO_502_CONTAINER,
3017 NDR_POINTER_UNIQUE, "SHARE_INFO_502_CONTAINER:",
3021 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3022 srvsvc_dissect_SHARE_INFO_1004_CONTAINER,
3023 NDR_POINTER_UNIQUE, "SHARE_INFO_1004_CONTAINER:",
3027 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3028 srvsvc_dissect_SHARE_INFO_1005_CONTAINER,
3029 NDR_POINTER_UNIQUE, "SHARE_INFO_1005_CONTAINER:",
3033 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3034 srvsvc_dissect_SHARE_INFO_1006_CONTAINER,
3035 NDR_POINTER_UNIQUE, "SHARE_INFO_1006_CONTAINER:",
3039 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3040 srvsvc_dissect_SHARE_INFO_1007_CONTAINER,
3041 NDR_POINTER_UNIQUE, "SHARE_INFO_1007_CONTAINER:",
3045 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3046 srvsvc_dissect_SHARE_INFO_1501_CONTAINER,
3047 NDR_POINTER_UNIQUE, "SHARE_INFO_1501_CONTAINER:",
3056 * IDL typedef struct {
3058 * IDL SHARE_ENUM_UNION shares;
3059 * IDL } SHARE_ENUM_STRUCT;
3062 srvsvc_dissect_SHARE_ENUM_STRUCT(tvbuff_t *tvb, int offset,
3063 packet_info *pinfo, proto_tree *tree,
3066 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3067 hf_srvsvc_info_level, 0);
3069 offset = srvsvc_dissect_SHARE_ENUM_UNION(tvb, offset, pinfo, tree, drep);
3075 * IDL long NetrShareEnum(
3076 * IDL [in] [string] [unique] wchar_t *ServerName,
3077 * IDL [in] [out] [ref] SHARE_ENUM_STRUCT *share,
3078 * IDL [in] long MaxLen,
3079 * IDL [out] long Entries,
3080 * IDL [in] [out] [unique] *ResumeHandle
3084 srvsvc_dissect_netrshareenum_rqst(tvbuff_t *tvb, int offset,
3085 packet_info *pinfo, proto_tree *tree,
3088 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3089 srvsvc_dissect_pointer_UNICODE_STRING,
3090 NDR_POINTER_UNIQUE, "Server",
3091 hf_srvsvc_server, 0);
3093 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3094 srvsvc_dissect_SHARE_ENUM_STRUCT,
3095 NDR_POINTER_REF, "Shares",
3098 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3099 hf_srvsvc_preferred_len, 0);
3101 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3102 srvsvc_dissect_ENUM_HANDLE,
3103 NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
3109 srvsvc_dissect_netrshareenum_reply(tvbuff_t *tvb, int offset,
3110 packet_info *pinfo, proto_tree *tree,
3113 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3114 srvsvc_dissect_SHARE_ENUM_STRUCT,
3115 NDR_POINTER_REF, "Shares",
3118 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3119 hf_srvsvc_num_entries, NULL);
3121 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3122 srvsvc_dissect_ENUM_HANDLE,
3123 NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
3125 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
3126 hf_srvsvc_rc, NULL);
3132 * IDL long NetrShareGetInfo(
3133 * IDL [in] [string] [unique] wchar_t *ServerName,
3134 * IDL [in] [string] [ref] wchar_t *ShareName,
3135 * IDL [in] long Level,
3136 * IDL [out] [ref] SHARE_INFO_UNION *share
3140 srvsvc_dissect_netrsharegetinfo_rqst(tvbuff_t *tvb, int offset,
3141 packet_info *pinfo, proto_tree *tree,
3144 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3145 srvsvc_dissect_pointer_UNICODE_STRING,
3146 NDR_POINTER_UNIQUE, "Server",
3147 hf_srvsvc_server, 0);
3149 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3150 srvsvc_dissect_pointer_UNICODE_STRING,
3151 NDR_POINTER_REF, "Share",
3152 hf_srvsvc_share, 0);
3154 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3155 hf_srvsvc_info_level, 0);
3161 srvsvc_dissect_netrsharegetinfo_reply(tvbuff_t *tvb, int offset,
3162 packet_info *pinfo, proto_tree *tree,
3165 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3166 srvsvc_dissect_SHARE_INFO_UNION,
3167 NDR_POINTER_REF, "Share",
3170 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
3171 hf_srvsvc_rc, NULL);
3177 * IDL long NetrShareSetInfo(
3178 * IDL [in] [string] [unique] wchar_t *ServerName,
3179 * IDL [in] [string] [ref] wchar_t *ShareName,
3180 * IDL [in] long Level,
3181 * IDL [in] [ref] SHARE_INFO_UNION *share
3182 * IDL [in] [out] [unique] long *ParmError,
3186 srvsvc_dissect_netrsharesetinfo_rqst(tvbuff_t *tvb, int offset,
3187 packet_info *pinfo, proto_tree *tree,
3190 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3191 srvsvc_dissect_pointer_UNICODE_STRING,
3192 NDR_POINTER_UNIQUE, "Server",
3193 hf_srvsvc_server, 0);
3195 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3196 srvsvc_dissect_pointer_UNICODE_STRING,
3197 NDR_POINTER_REF, "Share",
3198 hf_srvsvc_share, 0);
3200 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3201 hf_srvsvc_info_level, 0);
3203 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3204 srvsvc_dissect_SHARE_INFO_UNION,
3205 NDR_POINTER_REF, "Share",
3208 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3209 srvsvc_dissect_pointer_long, NDR_POINTER_UNIQUE,
3210 "Parameter Error:", hf_srvsvc_parm_error, 0);
3215 srvsvc_dissect_netrsharesetinfo_reply(tvbuff_t *tvb, int offset,
3216 packet_info *pinfo, proto_tree *tree,
3219 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3220 srvsvc_dissect_pointer_long, NDR_POINTER_UNIQUE,
3221 "Parameter Error:", hf_srvsvc_parm_error, 0);
3223 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
3224 hf_srvsvc_rc, NULL);
3230 * IDL long NetrShareDel(
3231 * IDL [in] [string] [unique] wchar_t *ServerName,
3232 * IDL [in] [string] [ref] wchar_t *ShareName,
3233 * IDL [in] long Reserved,
3237 srvsvc_dissect_netrsharedel_rqst(tvbuff_t *tvb, int offset,
3238 packet_info *pinfo, proto_tree *tree,
3241 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3242 srvsvc_dissect_pointer_UNICODE_STRING,
3243 NDR_POINTER_UNIQUE, "Server",
3244 hf_srvsvc_server, 0);
3246 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3247 srvsvc_dissect_pointer_UNICODE_STRING,
3248 NDR_POINTER_REF, "Share",
3249 hf_srvsvc_share, 0);
3251 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3252 hf_srvsvc_reserved, NULL);
3257 srvsvc_dissect_netrsharedel_reply(tvbuff_t *tvb, int offset,
3258 packet_info *pinfo, proto_tree *tree,
3261 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
3262 hf_srvsvc_rc, NULL);
3268 * IDL long NetrShareDelSticky(
3269 * IDL [in] [string] [unique] wchar_t *ServerName,
3270 * IDL [in] [string] [ref] wchar_t *ShareName,
3271 * IDL [in] long Reserved,
3275 srvsvc_dissect_netrsharedelsticky_rqst(tvbuff_t *tvb, int offset,
3276 packet_info *pinfo, proto_tree *tree,
3279 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3280 srvsvc_dissect_pointer_UNICODE_STRING,
3281 NDR_POINTER_UNIQUE, "Server",
3282 hf_srvsvc_server, 0);
3284 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3285 srvsvc_dissect_pointer_UNICODE_STRING,
3286 NDR_POINTER_REF, "Share",
3287 hf_srvsvc_share, 0);
3289 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3290 hf_srvsvc_reserved, NULL);
3295 srvsvc_dissect_netrsharedelsticky_reply(tvbuff_t *tvb, int offset,
3296 packet_info *pinfo, proto_tree *tree,
3299 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
3300 hf_srvsvc_rc, NULL);
3306 * IDL long NetrShareCheck(
3307 * IDL [in] [string] [unique] wchar_t *ServerName,
3308 * IDL [in] [string] [ref] wchar_t *DeviceName,
3309 * IDL [out] long type
3313 srvsvc_dissect_netrsharecheck_rqst(tvbuff_t *tvb, int offset,
3314 packet_info *pinfo, proto_tree *tree,
3317 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3318 srvsvc_dissect_pointer_UNICODE_STRING,
3319 NDR_POINTER_UNIQUE, "Server",
3320 hf_srvsvc_server, 0);
3322 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3323 srvsvc_dissect_pointer_UNICODE_STRING,
3324 NDR_POINTER_UNIQUE, "Char Device",
3325 hf_srvsvc_chrdev, 0);
3330 srvsvc_dissect_netrsharecheck_reply(tvbuff_t *tvb, int offset,
3331 packet_info *pinfo, proto_tree *tree,
3334 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3335 hf_srvsvc_share_type, NULL);
3337 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
3338 hf_srvsvc_rc, NULL);
3344 * IDL typedef struct {
3345 * IDL long platform_id;
3346 * IDL [string] [unique] wchar_t *server;
3347 * IDL } SERVER_INFO_100;
3350 srvsvc_dissect_SERVER_INFO_100(tvbuff_t *tvb, int offset,
3351 packet_info *pinfo, proto_tree *tree,
3354 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3355 hf_srvsvc_platform_id, NULL);
3357 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3358 srvsvc_dissect_pointer_UNICODE_STRING,
3359 NDR_POINTER_UNIQUE, "Server",
3360 hf_srvsvc_server, 0);
3366 * IDL typedef struct {
3367 * IDL long platform_id;
3368 * IDL [string] [unique] wchar_t *server;
3369 * IDL long ver_major;
3370 * IDL long ver_minor;
3372 * IDL [string] [unique] wchar_t *comment;
3373 * IDL } SERVER_INFO_101;
3376 srvsvc_dissect_SERVER_INFO_101(tvbuff_t *tvb, int offset,
3377 packet_info *pinfo, proto_tree *tree,
3380 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3381 hf_srvsvc_platform_id, NULL);
3383 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3384 srvsvc_dissect_pointer_UNICODE_STRING,
3385 NDR_POINTER_UNIQUE, "Server",
3386 hf_srvsvc_server, 0);
3388 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3389 hf_srvsvc_ver_major, NULL);
3391 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3392 hf_srvsvc_ver_minor, NULL);
3394 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3395 hf_srvsvc_server_type, NULL);
3397 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3398 srvsvc_dissect_pointer_UNICODE_STRING,
3399 NDR_POINTER_UNIQUE, "Comment",
3400 hf_srvsvc_comment, 0);
3406 * IDL typedef struct {
3407 * IDL long platform_id;
3408 * IDL [string] [unique] wchar_t *server;
3409 * IDL long ver_major;
3410 * IDL long ver_minor;
3412 * IDL [string] [unique] wchar_t *comment;
3416 * IDL long announce;
3417 * IDL long anndelta;
3418 * IDL long licences;
3419 * IDL [string] [unique] wchar_t *userpath;
3420 * IDL } SERVER_INFO_102;
3423 srvsvc_dissect_SERVER_INFO_102(tvbuff_t *tvb, int offset,
3424 packet_info *pinfo, proto_tree *tree,
3427 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3428 hf_srvsvc_platform_id, NULL);
3430 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3431 srvsvc_dissect_pointer_UNICODE_STRING,
3432 NDR_POINTER_UNIQUE, "Server",
3433 hf_srvsvc_server, 0);
3435 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3436 hf_srvsvc_ver_major, NULL);
3438 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3439 hf_srvsvc_ver_minor, NULL);
3441 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3442 hf_srvsvc_server_type, NULL);
3444 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3445 srvsvc_dissect_pointer_UNICODE_STRING,
3446 NDR_POINTER_UNIQUE, "Comment",
3447 hf_srvsvc_comment, 0);
3449 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3450 hf_srvsvc_users, NULL);
3452 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3453 hf_srvsvc_disc, NULL);
3455 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3456 hf_srvsvc_hidden, NULL);
3458 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3459 hf_srvsvc_announce, NULL);
3461 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3462 hf_srvsvc_anndelta, NULL);
3464 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3465 hf_srvsvc_licences, NULL);
3467 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3468 srvsvc_dissect_pointer_UNICODE_STRING,
3469 NDR_POINTER_UNIQUE, "User Path",
3470 hf_srvsvc_user_path, 0);
3476 * IDL typedef struct {
3477 * IDL long ulist_mtime;
3478 * IDL long glist_mtime;
3479 * IDL long alist_mtime;
3480 * IDL [string] [unique] wchar_t *alerts;
3481 * IDL long security;
3482 * IDL long numadmin;
3484 * IDL [string] [unique] wchar_t *guestaccount;
3487 * IDL long chdevjobs;
3488 * IDL long connections;
3490 * IDL long openfiles;
3491 * IDL long sessopens;
3493 * IDL long sessreqs;
3494 * IDL long opensearch;
3495 * IDL long activelocks;
3496 * IDL long sizreqbufs
3497 * IDL long numbigbufs
3498 * IDL long numfiletasks;
3499 * IDL long alertsched;
3500 * IDL long erroralert;
3501 * IDL long logonalert;
3502 * IDL long accessalert;
3503 * IDL long diskalert;
3504 * IDL long netioalert;
3505 * IDL long maxauditsz;
3506 * IDL [string] [unique] wchar_t *srvheuristics;
3507 * IDL } SERVER_INFO_402;
3510 srvsvc_dissect_SERVER_INFO_402(tvbuff_t *tvb, int offset,
3511 packet_info *pinfo, proto_tree *tree,
3514 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3515 hf_srvsvc_ulist_mtime, NULL);
3517 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3518 hf_srvsvc_glist_mtime, NULL);
3520 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3521 hf_srvsvc_alist_mtime, NULL);
3523 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3524 srvsvc_dissect_pointer_UNICODE_STRING,
3525 NDR_POINTER_UNIQUE, "Alerts",
3526 hf_srvsvc_alerts, 0);
3528 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3529 hf_srvsvc_security, NULL);
3531 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3532 hf_srvsvc_numadmin, NULL);
3534 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3535 hf_srvsvc_lanmask, NULL);
3537 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3538 srvsvc_dissect_pointer_UNICODE_STRING,
3539 NDR_POINTER_UNIQUE, "Guest",
3540 hf_srvsvc_guest, 0);
3542 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3543 hf_srvsvc_chdevs, NULL);
3545 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3546 hf_srvsvc_chdevqs, NULL);
3548 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3549 hf_srvsvc_chdevjobs, NULL);
3551 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3552 hf_srvsvc_connections, NULL);
3554 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3555 hf_srvsvc_shares, NULL);
3557 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3558 hf_srvsvc_openfiles, NULL);
3560 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3561 hf_srvsvc_sessopens, NULL);
3563 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3564 hf_srvsvc_sessvcs, NULL);
3566 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3567 hf_srvsvc_sessreqs, NULL);
3569 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3570 hf_srvsvc_opensearch, NULL);
3572 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3573 hf_srvsvc_activelocks, NULL);
3575 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3576 hf_srvsvc_sizreqbufs, NULL);
3578 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3579 hf_srvsvc_numbigbufs, NULL);
3581 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3582 hf_srvsvc_numfiletasks, NULL);
3584 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3585 hf_srvsvc_alertsched, NULL);
3587 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3588 hf_srvsvc_erroralert, NULL);
3590 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3591 hf_srvsvc_logonalert, NULL);
3593 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3594 hf_srvsvc_accessalert, NULL);
3596 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3597 hf_srvsvc_diskalert, NULL);
3599 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3600 hf_srvsvc_netioalert, NULL);
3602 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3603 hf_srvsvc_maxauditsz, NULL);
3605 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3606 srvsvc_dissect_pointer_UNICODE_STRING,
3607 NDR_POINTER_UNIQUE, "Server Heuristics",
3608 hf_srvsvc_srvheuristics, 0);
3614 * IDL typedef struct {
3615 * IDL long ulist_mtime;
3616 * IDL long glist_mtime;
3617 * IDL long alist_mtime;
3618 * IDL [string] [unique] wchar_t *alerts;
3619 * IDL long security;
3620 * IDL long numadmin;
3622 * IDL [string] [unique] wchar_t *guestaccount;
3625 * IDL long chdevjobs;
3626 * IDL long connections;
3628 * IDL long openfiles;
3629 * IDL long sessopens;
3631 * IDL long sessreqs;
3632 * IDL long opensearch;
3633 * IDL long activelocks;
3634 * IDL long sizreqbufs
3635 * IDL long numbigbufs
3636 * IDL long numfiletasks;
3637 * IDL long alertsched;
3638 * IDL long erroralert;
3639 * IDL long logonalert;
3640 * IDL long accessalert;
3641 * IDL long diskalert;
3642 * IDL long netioalert;
3643 * IDL long maxauditsz;
3644 * IDL [string] [unique] wchar_t *srvheuristics;
3645 * IDL long auditedevents;
3646 * IDL long auditprofile;
3647 * IDL [string] [unique] wchar_t *autopath;
3648 * IDL } SERVER_INFO_403;
3651 srvsvc_dissect_SERVER_INFO_403(tvbuff_t *tvb, int offset,
3652 packet_info *pinfo, proto_tree *tree,
3655 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3656 hf_srvsvc_ulist_mtime, NULL);
3658 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3659 hf_srvsvc_glist_mtime, NULL);
3661 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3662 hf_srvsvc_alist_mtime, NULL);
3664 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3665 srvsvc_dissect_pointer_UNICODE_STRING,
3666 NDR_POINTER_UNIQUE, "Alerts",
3667 hf_srvsvc_alerts, 0);
3669 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3670 hf_srvsvc_security, NULL);
3672 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3673 hf_srvsvc_numadmin, NULL);
3675 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3676 hf_srvsvc_lanmask, NULL);
3678 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3679 srvsvc_dissect_pointer_UNICODE_STRING,
3680 NDR_POINTER_UNIQUE, "Guest",
3681 hf_srvsvc_guest, 0);
3683 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3684 hf_srvsvc_chdevs, NULL);
3686 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3687 hf_srvsvc_chdevqs, NULL);
3689 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3690 hf_srvsvc_chdevjobs, NULL);
3692 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3693 hf_srvsvc_connections, NULL);
3695 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3696 hf_srvsvc_shares, NULL);
3698 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3699 hf_srvsvc_openfiles, NULL);
3701 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3702 hf_srvsvc_sessopens, NULL);
3704 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3705 hf_srvsvc_sessvcs, NULL);
3707 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3708 hf_srvsvc_sessreqs, NULL);
3710 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3711 hf_srvsvc_opensearch, NULL);
3713 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3714 hf_srvsvc_activelocks, NULL);
3716 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3717 hf_srvsvc_sizreqbufs, NULL);
3719 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3720 hf_srvsvc_numbigbufs, NULL);
3722 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3723 hf_srvsvc_numfiletasks, NULL);
3725 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3726 hf_srvsvc_alertsched, NULL);
3728 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3729 hf_srvsvc_erroralert, NULL);
3731 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3732 hf_srvsvc_logonalert, NULL);
3734 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3735 hf_srvsvc_accessalert, NULL);
3737 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3738 hf_srvsvc_diskalert, NULL);
3740 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3741 hf_srvsvc_netioalert, NULL);
3743 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3744 hf_srvsvc_maxauditsz, NULL);
3746 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3747 srvsvc_dissect_pointer_UNICODE_STRING,
3748 NDR_POINTER_UNIQUE, "Server Heuristics",
3749 hf_srvsvc_srvheuristics, 0);
3751 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3752 hf_srvsvc_auditedevents, NULL);
3754 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3755 hf_srvsvc_auditprofile, NULL);
3757 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3758 srvsvc_dissect_pointer_UNICODE_STRING,
3759 NDR_POINTER_UNIQUE, "Autopath",
3760 hf_srvsvc_autopath, 0);
3766 * IDL typedef struct {
3767 * IDL long sessopens;
3769 * IDL long opensearch;
3770 * IDL long sizreqbufs
3771 * IDL long initworkitems;
3772 * IDL long maxworkitems;
3773 * IDL long rawworkitems;
3774 * IDL long irpstacksize;
3775 * IDL long maxrawbuflen;
3776 * IDL long sessusers;
3777 * IDL long sessconns;
3778 * IDL long maxpagedmemoryusage;
3779 * IDL long maxnonpagedmemoryusage;
3780 * IDL long enablesoftcompat;
3781 * IDL long enableforcedlogoff;
3782 * IDL long timesource
3783 * IDL long acceptdownlevelapis;
3784 * IDL long lmannounce;
3785 * IDL } SERVER_INFO_502;
3788 srvsvc_dissect_SERVER_INFO_502(tvbuff_t *tvb, int offset,
3789 packet_info *pinfo, proto_tree *tree,
3792 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3793 hf_srvsvc_sessopens, NULL);
3795 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3796 hf_srvsvc_sessvcs, NULL);
3798 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3799 hf_srvsvc_opensearch, NULL);
3801 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3802 hf_srvsvc_sizreqbufs, NULL);
3804 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3805 hf_srvsvc_initworkitems, NULL);
3807 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3808 hf_srvsvc_maxworkitems, NULL);
3810 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3811 hf_srvsvc_rawworkitems, NULL);
3813 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3814 hf_srvsvc_irpstacksize, NULL);
3816 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3817 hf_srvsvc_maxrawbuflen, NULL);
3819 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3820 hf_srvsvc_users, NULL);
3822 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3823 hf_srvsvc_connections, NULL);
3825 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3826 hf_srvsvc_maxpagedmemoryusage, NULL);
3828 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3829 hf_srvsvc_maxnonpagedmemoryusage, NULL);
3831 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3832 hf_srvsvc_enablesoftcompat, NULL);
3834 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3835 hf_srvsvc_enableforcedlogoff, NULL);
3837 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3838 hf_srvsvc_timesource, NULL);
3840 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3841 hf_srvsvc_acceptdownlevelapis, NULL);
3843 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3844 hf_srvsvc_lmannounce, NULL);
3850 * IDL typedef struct {
3851 * IDL long sessopens;
3853 * IDL long opensearch;
3854 * IDL long sizreqbufs
3855 * IDL long initworkitems;
3856 * IDL long maxworkitems;
3857 * IDL long rawworkitems;
3858 * IDL long irpstacksize;
3859 * IDL long maxrawbuflen;
3860 * IDL long sessusers;
3861 * IDL long sessconns;
3862 * IDL long maxpagedmemoryusage;
3863 * IDL long maxnonpagedmemoryusage;
3864 * IDL long enablesoftcompat;
3865 * IDL long enableforcedlogoff;
3866 * IDL long timesource
3867 * IDL long acceptdownlevelapis;
3868 * IDL long lmannounce;
3869 * IDL [string] [unique] wchar_t *domain;
3870 * IDL long maxcopyreadlen;
3871 * IDL long maxcopywritelen;
3872 * IDL long minkeepsearch;
3873 * IDL long mankeepsearch;
3874 * IDL long minkeepcomplsearch;
3875 * IDL long mankeepcomplsearch;
3876 * IDL long threadcountadd;
3877 * IDL long numblockthreads;
3878 * IDL long scavtimeout;
3879 * IDL long minrcvqueue;
3880 * IDL long minfreeworkitems;
3881 * IDL long xactmemsize;
3882 * IDL long threadpriority;
3883 * IDL long maxmpxct;
3884 * IDL long oplockbreakwait;
3885 * IDL long oplockbreakresponsewait;
3886 * IDL long enableoplocks;
3887 * IDL long enableoplockforceclose
3888 * IDL long enablefcbopens;
3889 * IDL long enableraw;
3890 * IDL long enablesharednetdrives;
3891 * IDL long minfreeconnections;
3892 * IDL long maxfreeconnections;
3893 * IDL } SERVER_INFO_503;
3896 srvsvc_dissect_SERVER_INFO_503(tvbuff_t *tvb, int offset,
3897 packet_info *pinfo, proto_tree *tree,
3900 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3901 hf_srvsvc_sessopens, NULL);
3903 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3904 hf_srvsvc_sessvcs, NULL);
3906 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3907 hf_srvsvc_opensearch, NULL);
3909 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3910 hf_srvsvc_sizreqbufs, NULL);
3912 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3913 hf_srvsvc_initworkitems, NULL);
3915 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3916 hf_srvsvc_maxworkitems, NULL);
3918 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3919 hf_srvsvc_rawworkitems, NULL);
3921 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3922 hf_srvsvc_irpstacksize, NULL);
3924 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3925 hf_srvsvc_maxrawbuflen, NULL);
3927 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3928 hf_srvsvc_users, NULL);
3930 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3931 hf_srvsvc_connections, NULL);
3933 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3934 hf_srvsvc_maxpagedmemoryusage, NULL);
3936 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3937 hf_srvsvc_maxnonpagedmemoryusage, NULL);
3939 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3940 hf_srvsvc_enablesoftcompat, NULL);
3942 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3943 hf_srvsvc_enableforcedlogoff, NULL);
3945 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3946 hf_srvsvc_timesource, NULL);
3948 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3949 hf_srvsvc_acceptdownlevelapis, NULL);
3951 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3952 hf_srvsvc_lmannounce, NULL);
3954 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3955 srvsvc_dissect_pointer_UNICODE_STRING,
3956 NDR_POINTER_UNIQUE, "Domain",
3957 hf_srvsvc_domain, 0);
3959 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3960 hf_srvsvc_maxcopyreadlen, NULL);
3962 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3963 hf_srvsvc_maxcopywritelen, NULL);
3965 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3966 hf_srvsvc_minkeepsearch, NULL);
3968 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3969 hf_srvsvc_maxkeepsearch, NULL);
3971 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3972 hf_srvsvc_minkeepcomplsearch, NULL);
3974 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3975 hf_srvsvc_maxkeepcomplsearch, NULL);
3977 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3978 hf_srvsvc_threadcountadd, NULL);
3980 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3981 hf_srvsvc_numblockthreads, NULL);
3983 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3984 hf_srvsvc_scavtimeout, NULL);
3986 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3987 hf_srvsvc_minrcvqueue, NULL);
3989 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3990 hf_srvsvc_minfreeworkitems, NULL);
3992 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3993 hf_srvsvc_xactmemsize, NULL);
3995 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3996 hf_srvsvc_threadpriority, NULL);
3998 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3999 hf_srvsvc_maxmpxct, NULL);
4001 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4002 hf_srvsvc_oplockbreakwait, NULL);
4004 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4005 hf_srvsvc_oplockbreakresponsewait, NULL);
4007 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4008 hf_srvsvc_enableoplocks, NULL);
4010 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4011 hf_srvsvc_enableoplockforceclose, NULL);
4013 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4014 hf_srvsvc_enablefcbopens, NULL);
4016 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4017 hf_srvsvc_enableraw, NULL);
4019 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4020 hf_srvsvc_enablesharednetdrives, NULL);
4022 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4023 hf_srvsvc_minfreeconnections, NULL);
4025 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4026 hf_srvsvc_maxfreeconnections, NULL);
4033 * IDL typedef struct {
4034 * IDL long sessopens;
4036 * IDL long opensearch;
4037 * IDL long sizreqbufs
4038 * IDL long initworkitems;
4039 * IDL long maxworkitems;
4040 * IDL long rawworkitems;
4041 * IDL long irpstacksize;
4042 * IDL long maxrawbuflen;
4043 * IDL long sessusers;
4044 * IDL long sessconns;
4045 * IDL long maxpagedmemoryusage;
4046 * IDL long maxnonpagedmemoryusage;
4047 * IDL long enablesoftcompat;
4048 * IDL long enableforcedlogoff;
4049 * IDL long timesource
4050 * IDL long acceptdownlevelapis;
4051 * IDL long lmannounce;
4052 * IDL [string] [unique] wchar_t *domain;
4053 * IDL long maxcopyreadlen;
4054 * IDL long maxcopywritelen;
4055 * IDL long minkeepsearch;
4056 * IDL long mankeepsearch;
4057 * IDL long minkeepcomplsearch;
4058 * IDL long mankeepcomplsearch;
4059 * IDL long threadcountadd;
4060 * IDL long numblockthreads;
4061 * IDL long scavtimeout;
4062 * IDL long minrcvqueue;
4063 * IDL long minfreeworkitems;
4064 * IDL long xactmemsize;
4065 * IDL long threadpriority;
4066 * IDL long maxmpxct;
4067 * IDL long oplockbreakwait;
4068 * IDL long oplockbreakresponsewait;
4069 * IDL long enableoplocks;
4070 * IDL long enableoplockforceclose
4071 * IDL long enablefcbopens;
4072 * IDL long enableraw;
4073 * IDL long enablesharednetdrives;
4074 * IDL long minfreeconnections;
4075 * IDL long maxfreeconnections;
4076 * IDL long initsesstable;
4077 * IDL long initconntable;
4078 * IDL long initfiletable;
4079 * IDL long initsearchtable;
4080 * IDL long alertsched;
4081 * IDL long errortreshold;
4082 * IDL long networkerrortreshold;
4083 * IDL long diskspacetreshold;
4084 * IDL long reserved;
4085 * IDL long maxlinkdelay;
4086 * IDL long minlinkthroughput;
4087 * IDL long linkinfovalidtime;
4088 * IDL long scavqosinfoupdatetime;
4089 * IDL long maxworkitemidletime;
4090 * IDL } SERVER_INFO_599;
4093 srvsvc_dissect_SERVER_INFO_599(tvbuff_t *tvb, int offset,
4094 packet_info *pinfo, proto_tree *tree,
4097 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4098 hf_srvsvc_sessopens, NULL);
4100 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4101 hf_srvsvc_sessvcs, NULL);
4103 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4104 hf_srvsvc_opensearch, NULL);
4106 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4107 hf_srvsvc_sizreqbufs, NULL);
4109 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4110 hf_srvsvc_initworkitems, NULL);
4112 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4113 hf_srvsvc_maxworkitems, NULL);
4115 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4116 hf_srvsvc_rawworkitems, NULL);
4118 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4119 hf_srvsvc_irpstacksize, NULL);
4121 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4122 hf_srvsvc_maxrawbuflen, NULL);
4124 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4125 hf_srvsvc_users, NULL);
4127 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4128 hf_srvsvc_connections, NULL);
4130 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4131 hf_srvsvc_maxpagedmemoryusage, NULL);
4133 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4134 hf_srvsvc_maxnonpagedmemoryusage, NULL);
4136 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4137 hf_srvsvc_enablesoftcompat, NULL);
4139 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4140 hf_srvsvc_enableforcedlogoff, NULL);
4142 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4143 hf_srvsvc_timesource, NULL);
4145 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4146 hf_srvsvc_acceptdownlevelapis, NULL);
4148 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4149 hf_srvsvc_lmannounce, NULL);
4151 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4152 srvsvc_dissect_pointer_UNICODE_STRING,
4153 NDR_POINTER_UNIQUE, "Domain",
4154 hf_srvsvc_domain, 0);
4156 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4157 hf_srvsvc_maxcopyreadlen, NULL);
4159 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4160 hf_srvsvc_maxcopywritelen, NULL);
4162 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4163 hf_srvsvc_minkeepsearch, NULL);
4165 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4166 hf_srvsvc_maxkeepsearch, NULL);
4168 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4169 hf_srvsvc_minkeepcomplsearch, NULL);
4171 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4172 hf_srvsvc_maxkeepcomplsearch, NULL);
4174 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4175 hf_srvsvc_threadcountadd, NULL);
4177 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4178 hf_srvsvc_numblockthreads, NULL);
4180 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4181 hf_srvsvc_scavtimeout, NULL);
4183 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4184 hf_srvsvc_minrcvqueue, NULL);
4186 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4187 hf_srvsvc_minfreeworkitems, NULL);
4189 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4190 hf_srvsvc_xactmemsize, NULL);
4192 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4193 hf_srvsvc_threadpriority, NULL);
4195 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4196 hf_srvsvc_maxmpxct, NULL);
4198 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4199 hf_srvsvc_oplockbreakwait, NULL);
4201 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4202 hf_srvsvc_oplockbreakresponsewait, NULL);
4204 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4205 hf_srvsvc_enableoplocks, NULL);
4207 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4208 hf_srvsvc_enableoplockforceclose, NULL);
4210 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4211 hf_srvsvc_enablefcbopens, NULL);
4213 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4214 hf_srvsvc_enableraw, NULL);
4216 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4217 hf_srvsvc_enablesharednetdrives, NULL);
4219 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4220 hf_srvsvc_minfreeconnections, NULL);
4222 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4223 hf_srvsvc_maxfreeconnections, NULL);
4225 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4226 hf_srvsvc_initsesstable, NULL);
4228 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4229 hf_srvsvc_initconntable, NULL);
4231 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4232 hf_srvsvc_initfiletable, NULL);
4234 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4235 hf_srvsvc_initsearchtable, NULL);
4237 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4238 hf_srvsvc_alertsched, NULL);
4240 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4241 hf_srvsvc_errortreshold, NULL);
4243 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4244 hf_srvsvc_networkerrortreshold, NULL);
4246 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4247 hf_srvsvc_diskspacetreshold, NULL);
4249 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4250 hf_srvsvc_reserved, NULL);
4252 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4253 hf_srvsvc_reserved, NULL);
4255 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4256 hf_srvsvc_maxlinkdelay, NULL);
4258 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4259 hf_srvsvc_minlinkthroughput, NULL);
4261 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4262 hf_srvsvc_linkinfovalidtime, NULL);
4264 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4265 hf_srvsvc_scavqosinfoupdatetime, NULL);
4267 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4268 hf_srvsvc_maxworkitemidletime, NULL);
4274 * IDL typedef struct {
4275 * IDL [string] [unique] wchar_t *comment;
4276 * IDL } SERVER_INFO_1005;
4279 srvsvc_dissect_SERVER_INFO_1005(tvbuff_t *tvb, int offset,
4280 packet_info *pinfo, proto_tree *tree,
4283 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4284 srvsvc_dissect_pointer_UNICODE_STRING, NDR_POINTER_UNIQUE,
4285 "Comment", hf_srvsvc_comment, 0);
4292 * IDL typedef struct {
4294 * IDL } SERVER_INFO_1010;
4297 srvsvc_dissect_SERVER_INFO_1010(tvbuff_t *tvb, int offset,
4298 packet_info *pinfo, proto_tree *tree,
4301 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4302 hf_srvsvc_disc, NULL);
4308 * IDL typedef struct {
4310 * IDL } SERVER_INFO_1016;
4313 srvsvc_dissect_SERVER_INFO_1016(tvbuff_t *tvb, int offset,
4314 packet_info *pinfo, proto_tree *tree,
4317 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4318 hf_srvsvc_hidden, NULL);
4324 * IDL typedef struct {
4325 * IDL long announce;
4326 * IDL } SERVER_INFO_1017;
4329 srvsvc_dissect_SERVER_INFO_1017(tvbuff_t *tvb, int offset,
4330 packet_info *pinfo, proto_tree *tree,
4333 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4334 hf_srvsvc_announce, NULL);
4340 * IDL typedef struct {
4341 * IDL long anndelta;
4342 * IDL } SERVER_INFO_1018;
4345 srvsvc_dissect_SERVER_INFO_1018(tvbuff_t *tvb, int offset,
4346 packet_info *pinfo, proto_tree *tree,
4349 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4350 hf_srvsvc_anndelta, NULL);
4356 * IDL typedef struct {
4358 * IDL } SERVER_INFO_1107;
4361 srvsvc_dissect_SERVER_INFO_1107(tvbuff_t *tvb, int offset,
4362 packet_info *pinfo, proto_tree *tree,
4365 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4366 hf_srvsvc_users, NULL);
4372 * IDL typedef struct {
4373 * IDL long sessopens;
4374 * IDL } SERVER_INFO_1501;
4377 srvsvc_dissect_SERVER_INFO_1501(tvbuff_t *tvb, int offset,
4378 packet_info *pinfo, proto_tree *tree,
4381 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4382 hf_srvsvc_sessopens, NULL);
4388 * IDL typedef struct {
4390 * IDL } SERVER_INFO_1502;
4393 srvsvc_dissect_SERVER_INFO_1502(tvbuff_t *tvb, int offset,
4394 packet_info *pinfo, proto_tree *tree,
4397 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4398 hf_srvsvc_sessvcs, NULL);
4404 * IDL typedef struct {
4405 * IDL long opensearch;
4406 * IDL } SERVER_INFO_1503;
4409 srvsvc_dissect_SERVER_INFO_1503(tvbuff_t *tvb, int offset,
4410 packet_info *pinfo, proto_tree *tree,
4413 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4414 hf_srvsvc_opensearch, NULL);
4420 * IDL typedef struct {
4421 * IDL long maxworkitems;
4422 * IDL } SERVER_INFO_1506;
4425 srvsvc_dissect_SERVER_INFO_1506(tvbuff_t *tvb, int offset,
4426 packet_info *pinfo, proto_tree *tree,
4429 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4430 hf_srvsvc_maxworkitems, NULL);
4436 * IDL typedef struct {
4437 * IDL long maxrawbuflen;
4438 * IDL } SERVER_INFO_1509;
4441 srvsvc_dissect_SERVER_INFO_1509(tvbuff_t *tvb, int offset,
4442 packet_info *pinfo, proto_tree *tree,
4445 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4446 hf_srvsvc_maxrawbuflen, NULL);
4452 * IDL typedef struct {
4453 * IDL long sessusers;
4454 * IDL } SERVER_INFO_1510;
4457 srvsvc_dissect_SERVER_INFO_1510(tvbuff_t *tvb, int offset,
4458 packet_info *pinfo, proto_tree *tree,
4461 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4462 hf_srvsvc_users, NULL);
4468 * IDL typedef struct {
4469 * IDL long sessconns;
4470 * IDL } SERVER_INFO_1511;
4473 srvsvc_dissect_SERVER_INFO_1511(tvbuff_t *tvb, int offset,
4474 packet_info *pinfo, proto_tree *tree,
4477 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4478 hf_srvsvc_connections, NULL);
4484 * IDL typedef struct {
4485 * IDL long maxnonpagedmemoryusage;
4486 * IDL } SERVER_INFO_1512;
4489 srvsvc_dissect_SERVER_INFO_1512(tvbuff_t *tvb, int offset,
4490 packet_info *pinfo, proto_tree *tree,
4493 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4494 hf_srvsvc_maxnonpagedmemoryusage, NULL);
4500 * IDL typedef struct {
4501 * IDL long maxpagedmemoryusage;
4502 * IDL } SERVER_INFO_1513;
4505 srvsvc_dissect_SERVER_INFO_1513(tvbuff_t *tvb, int offset,
4506 packet_info *pinfo, proto_tree *tree,
4509 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4510 hf_srvsvc_maxpagedmemoryusage, NULL);
4516 * IDL typedef struct {
4517 * IDL long enablesoftcompat;
4518 * IDL } SERVER_INFO_1514;
4521 srvsvc_dissect_SERVER_INFO_1514(tvbuff_t *tvb, int offset,
4522 packet_info *pinfo, proto_tree *tree,
4525 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4526 hf_srvsvc_enablesoftcompat, NULL);
4532 * IDL typedef struct {
4533 * IDL long enableforcedlogoff;
4534 * IDL } SERVER_INFO_1515;
4537 srvsvc_dissect_SERVER_INFO_1515(tvbuff_t *tvb, int offset,
4538 packet_info *pinfo, proto_tree *tree,
4541 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4542 hf_srvsvc_enableforcedlogoff, NULL);
4548 * IDL typedef struct {
4549 * IDL long timesource;
4550 * IDL } SERVER_INFO_1516;
4553 srvsvc_dissect_SERVER_INFO_1516(tvbuff_t *tvb, int offset,
4554 packet_info *pinfo, proto_tree *tree,
4557 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4558 hf_srvsvc_timesource, NULL);
4564 * IDL typedef struct {
4565 * IDL long lmannounce;
4566 * IDL } SERVER_INFO_1518;
4569 srvsvc_dissect_SERVER_INFO_1518(tvbuff_t *tvb, int offset,
4570 packet_info *pinfo, proto_tree *tree,
4573 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4574 hf_srvsvc_lmannounce, NULL);
4580 * IDL typedef struct {
4581 * IDL long maxcopyreadlen;
4582 * IDL } SERVER_INFO_1520;
4585 srvsvc_dissect_SERVER_INFO_1520(tvbuff_t *tvb, int offset,
4586 packet_info *pinfo, proto_tree *tree,
4589 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4590 hf_srvsvc_maxcopyreadlen, NULL);
4596 * IDL typedef struct {
4597 * IDL long maxcopywritelen;
4598 * IDL } SERVER_INFO_1521;
4601 srvsvc_dissect_SERVER_INFO_1521(tvbuff_t *tvb, int offset,
4602 packet_info *pinfo, proto_tree *tree,
4605 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4606 hf_srvsvc_maxcopywritelen, NULL);
4612 * IDL typedef struct {
4613 * IDL long minkeepsearch;
4614 * IDL } SERVER_INFO_1522;
4617 srvsvc_dissect_SERVER_INFO_1522(tvbuff_t *tvb, int offset,
4618 packet_info *pinfo, proto_tree *tree,
4621 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4622 hf_srvsvc_minkeepsearch, NULL);
4628 * IDL typedef struct {
4629 * IDL long maxkeepsearch;
4630 * IDL } SERVER_INFO_1523;
4633 srvsvc_dissect_SERVER_INFO_1523(tvbuff_t *tvb, int offset,
4634 packet_info *pinfo, proto_tree *tree,
4637 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4638 hf_srvsvc_maxkeepsearch, NULL);
4644 * IDL typedef struct {
4645 * IDL long minkeepcomplsearch;
4646 * IDL } SERVER_INFO_1524;
4649 srvsvc_dissect_SERVER_INFO_1524(tvbuff_t *tvb, int offset,
4650 packet_info *pinfo, proto_tree *tree,
4653 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4654 hf_srvsvc_minkeepcomplsearch, NULL);
4660 * IDL typedef struct {
4661 * IDL long maxkeepcomplsearch;
4662 * IDL } SERVER_INFO_1525;
4665 srvsvc_dissect_SERVER_INFO_1525(tvbuff_t *tvb, int offset,
4666 packet_info *pinfo, proto_tree *tree,
4669 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4670 hf_srvsvc_maxkeepcomplsearch, NULL);
4676 * IDL typedef struct {
4677 * IDL long scavtimeout;
4678 * IDL } SERVER_INFO_1528;
4681 srvsvc_dissect_SERVER_INFO_1528(tvbuff_t *tvb, int offset,
4682 packet_info *pinfo, proto_tree *tree,
4685 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4686 hf_srvsvc_scavtimeout, NULL);
4692 * IDL typedef struct {
4693 * IDL long minrcvqueue;
4694 * IDL } SERVER_INFO_1529;
4697 srvsvc_dissect_SERVER_INFO_1529(tvbuff_t *tvb, int offset,
4698 packet_info *pinfo, proto_tree *tree,
4701 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4702 hf_srvsvc_minrcvqueue, NULL);
4708 * IDL typedef struct {
4709 * IDL long minfreeworkitems;
4710 * IDL } SERVER_INFO_1530;
4713 srvsvc_dissect_SERVER_INFO_1530(tvbuff_t *tvb, int offset,
4714 packet_info *pinfo, proto_tree *tree,
4717 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4718 hf_srvsvc_minfreeworkitems, NULL);
4724 * IDL typedef struct {
4725 * IDL long maxmpxct;
4726 * IDL } SERVER_INFO_1533;
4729 srvsvc_dissect_SERVER_INFO_1533(tvbuff_t *tvb, int offset,
4730 packet_info *pinfo, proto_tree *tree,
4733 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4734 hf_srvsvc_maxmpxct, NULL);
4740 * IDL typedef struct {
4741 * IDL long oplockbreakwait;
4742 * IDL } SERVER_INFO_1534;
4745 srvsvc_dissect_SERVER_INFO_1534(tvbuff_t *tvb, int offset,
4746 packet_info *pinfo, proto_tree *tree,
4749 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4750 hf_srvsvc_oplockbreakwait, NULL);
4756 * IDL typedef struct {
4757 * IDL long oplockbreakresponsewait;
4758 * IDL } SERVER_INFO_1535;
4761 srvsvc_dissect_SERVER_INFO_1535(tvbuff_t *tvb, int offset,
4762 packet_info *pinfo, proto_tree *tree,
4765 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4766 hf_srvsvc_oplockbreakresponsewait, NULL);
4772 * IDL typedef struct {
4773 * IDL long enableoplocks;
4774 * IDL } SERVER_INFO_1536;
4777 srvsvc_dissect_SERVER_INFO_1536(tvbuff_t *tvb, int offset,
4778 packet_info *pinfo, proto_tree *tree,
4781 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4782 hf_srvsvc_enableoplocks, NULL);
4788 * IDL typedef struct {
4789 * IDL long enableoplockforceclose;
4790 * IDL } SERVER_INFO_1537;
4793 srvsvc_dissect_SERVER_INFO_1537(tvbuff_t *tvb, int offset,
4794 packet_info *pinfo, proto_tree *tree,
4797 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4798 hf_srvsvc_enableoplockforceclose, NULL);
4804 * IDL typedef struct {
4805 * IDL long enablefcbopens;
4806 * IDL } SERVER_INFO_1538;
4809 srvsvc_dissect_SERVER_INFO_1538(tvbuff_t *tvb, int offset,
4810 packet_info *pinfo, proto_tree *tree,
4813 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4814 hf_srvsvc_enablefcbopens, NULL);
4820 * IDL typedef struct {
4821 * IDL long enableraw;
4822 * IDL } SERVER_INFO_1539;
4825 srvsvc_dissect_SERVER_INFO_1539(tvbuff_t *tvb, int offset,
4826 packet_info *pinfo, proto_tree *tree,
4829 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4830 hf_srvsvc_enableraw, NULL);
4836 * IDL typedef struct {
4837 * IDL long enablesharednetdrives;
4838 * IDL } SERVER_INFO_1540;
4841 srvsvc_dissect_SERVER_INFO_1540(tvbuff_t *tvb, int offset,
4842 packet_info *pinfo, proto_tree *tree,
4845 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4846 hf_srvsvc_enablesharednetdrives, NULL);
4852 * IDL typedef struct {
4853 * IDL long minfreeconnections;
4854 * IDL } SERVER_INFO_1541;
4857 srvsvc_dissect_SERVER_INFO_1541(tvbuff_t *tvb, int offset,
4858 packet_info *pinfo, proto_tree *tree,
4861 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4862 hf_srvsvc_minfreeconnections, NULL);
4868 * IDL typedef struct {
4869 * IDL long maxfreeconnections;
4870 * IDL } SERVER_INFO_1542;
4873 srvsvc_dissect_SERVER_INFO_1542(tvbuff_t *tvb, int offset,
4874 packet_info *pinfo, proto_tree *tree,
4877 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4878 hf_srvsvc_maxfreeconnections, NULL);
4884 * IDL typedef struct {
4885 * IDL long initsesstable;
4886 * IDL } SERVER_INFO_1543;
4889 srvsvc_dissect_SERVER_INFO_1543(tvbuff_t *tvb, int offset,
4890 packet_info *pinfo, proto_tree *tree,
4893 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4894 hf_srvsvc_initsesstable, NULL);
4900 * IDL typedef struct {
4901 * IDL long initconntable;
4902 * IDL } SERVER_INFO_1544;
4905 srvsvc_dissect_SERVER_INFO_1544(tvbuff_t *tvb, int offset,
4906 packet_info *pinfo, proto_tree *tree,
4909 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4910 hf_srvsvc_initconntable, NULL);
4916 * IDL typedef struct {
4917 * IDL long initfiletable;
4918 * IDL } SERVER_INFO_1545;
4921 srvsvc_dissect_SERVER_INFO_1545(tvbuff_t *tvb, int offset,
4922 packet_info *pinfo, proto_tree *tree,
4925 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4926 hf_srvsvc_initfiletable, NULL);
4932 * IDL typedef struct {
4933 * IDL long initsearchtable;
4934 * IDL } SERVER_INFO_1546;
4937 srvsvc_dissect_SERVER_INFO_1546(tvbuff_t *tvb, int offset,
4938 packet_info *pinfo, proto_tree *tree,
4941 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4942 hf_srvsvc_initsearchtable, NULL);
4948 * IDL typedef struct {
4949 * IDL long alertsched;
4950 * IDL } SERVER_INFO_1547;
4953 srvsvc_dissect_SERVER_INFO_1547(tvbuff_t *tvb, int offset,
4954 packet_info *pinfo, proto_tree *tree,
4957 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4958 hf_srvsvc_alertsched, NULL);
4964 * IDL typedef struct {
4965 * IDL long errortreshold;
4966 * IDL } SERVER_INFO_1548;
4969 srvsvc_dissect_SERVER_INFO_1548(tvbuff_t *tvb, int offset,
4970 packet_info *pinfo, proto_tree *tree,
4973 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4974 hf_srvsvc_errortreshold, NULL);
4980 * IDL typedef struct {
4981 * IDL long networkerrortreshold;
4982 * IDL } SERVER_INFO_1549;
4985 srvsvc_dissect_SERVER_INFO_1549(tvbuff_t *tvb, int offset,
4986 packet_info *pinfo, proto_tree *tree,
4989 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4990 hf_srvsvc_networkerrortreshold, NULL);
4996 * IDL typedef struct {
4997 * IDL long diskspacetreshold;
4998 * IDL } SERVER_INFO_1550;
5001 srvsvc_dissect_SERVER_INFO_1550(tvbuff_t *tvb, int offset,
5002 packet_info *pinfo, proto_tree *tree,
5005 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5006 hf_srvsvc_diskspacetreshold, NULL);
5012 * IDL typedef struct {
5013 * IDL long maxlinkdelay;
5014 * IDL } SERVER_INFO_1552;
5017 srvsvc_dissect_SERVER_INFO_1552(tvbuff_t *tvb, int offset,
5018 packet_info *pinfo, proto_tree *tree,
5021 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5022 hf_srvsvc_maxlinkdelay, NULL);
5028 * IDL typedef struct {
5029 * IDL long minlinkthroughput;
5030 * IDL } SERVER_INFO_1553;
5033 srvsvc_dissect_SERVER_INFO_1553(tvbuff_t *tvb, int offset,
5034 packet_info *pinfo, proto_tree *tree,
5037 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5038 hf_srvsvc_minlinkthroughput, NULL);
5044 * IDL typedef struct {
5045 * IDL long linkinfovalidtime;
5046 * IDL } SERVER_INFO_1554;
5049 srvsvc_dissect_SERVER_INFO_1554(tvbuff_t *tvb, int offset,
5050 packet_info *pinfo, proto_tree *tree,
5053 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5054 hf_srvsvc_linkinfovalidtime, NULL);
5060 * IDL typedef struct {
5061 * IDL long scavqosinfoupdatetime;
5062 * IDL } SERVER_INFO_1555;
5065 srvsvc_dissect_SERVER_INFO_1555(tvbuff_t *tvb, int offset,
5066 packet_info *pinfo, proto_tree *tree,
5069 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5070 hf_srvsvc_scavqosinfoupdatetime, NULL);
5076 * IDL typedef struct {
5077 * IDL long maxworkitemidletime;
5078 * IDL } SERVER_INFO_1556;
5081 srvsvc_dissect_SERVER_INFO_1556(tvbuff_t *tvb, int offset,
5082 packet_info *pinfo, proto_tree *tree,
5085 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5086 hf_srvsvc_maxworkitemidletime, NULL);
5092 * IDL typedef [switch_type(long)] union {
5093 * IDL [case(100)] [unique] SERVER_INFO_100 *srv100;
5094 * IDL [case(101)] [unique] SERVER_INFO_101 *srv101;
5095 * IDL [case(102)] [unique] SERVER_INFO_102 *srv102;
5096 * IDL [case(402)] [unique] SERVER_INFO_402 *srv402;
5097 * IDL [case(403)] [unique] SERVER_INFO_403 *srv403;
5098 * IDL [case(502)] [unique] SERVER_INFO_502 *srv502;
5099 * IDL [case(503)] [unique] SERVER_INFO_503 *srv503;
5100 * IDL [case(599)] [unique] SERVER_INFO_599 *srv599;
5101 * IDL [case(1005)] [unique] SERVER_INFO_1005 *srv1005;
5102 * IDL [case(1010)] [unique] SERVER_INFO_1010 *srv1010;
5103 * IDL [case(1016)] [unique] SERVER_INFO_1016 *srv1016;
5104 * IDL [case(1017)] [unique] SERVER_INFO_1017 *srv1017;
5105 * IDL [case(1018)] [unique] SERVER_INFO_1018 *srv1018;
5106 * IDL [case(1107)] [unique] SERVER_INFO_1107 *srv1107;
5107 * IDL [case(1501)] [unique] SERVER_INFO_1501 *srv1501;
5108 * IDL [case(1502)] [unique] SERVER_INFO_1502 *srv1502;
5109 * IDL [case(1503)] [unique] SERVER_INFO_1503 *srv1503;
5110 * IDL [case(1506)] [unique] SERVER_INFO_1506 *srv1506;
5111 * IDL [case(1509)] [unique] SERVER_INFO_1509 *srv1509;
5112 * IDL [case(1510)] [unique] SERVER_INFO_1510 *srv1510;
5113 * IDL [case(1511)] [unique] SERVER_INFO_1511 *srv1511;
5114 * IDL [case(1512)] [unique] SERVER_INFO_1512 *srv1512;
5115 * IDL [case(1513)] [unique] SERVER_INFO_1513 *srv1513;
5116 * IDL [case(1514)] [unique] SERVER_INFO_1514 *srv1514;
5117 * IDL [case(1515)] [unique] SERVER_INFO_1515 *srv1515;
5118 * IDL [case(1516)] [unique] SERVER_INFO_1516 *srv1516;
5119 * IDL [case(1518)] [unique] SERVER_INFO_1518 *srv1518;
5120 * IDL [case(1520)] [unique] SERVER_INFO_1520 *srv1520;
5121 * IDL [case(1521)] [unique] SERVER_INFO_1521 *srv1521;
5122 * IDL [case(1522)] [unique] SERVER_INFO_1522 *srv1522;
5123 * IDL [case(1523)] [unique] SERVER_INFO_1523 *srv1523;
5124 * IDL [case(1524)] [unique] SERVER_INFO_1524 *srv1524;
5125 * IDL [case(1525)] [unique] SERVER_INFO_1525 *srv1525;
5126 * IDL [case(1528)] [unique] SERVER_INFO_1528 *srv1528;
5127 * IDL [case(1529)] [unique] SERVER_INFO_1529 *srv1529;
5128 * IDL [case(1530)] [unique] SERVER_INFO_1530 *srv1530;
5129 * IDL [case(1533)] [unique] SERVER_INFO_1533 *srv1533;
5130 * IDL [case(1534)] [unique] SERVER_INFO_1534 *srv1534;
5131 * IDL [case(1535)] [unique] SERVER_INFO_1535 *srv1535;
5132 * IDL [case(1536)] [unique] SERVER_INFO_1536 *srv1536;
5133 * IDL [case(1537)] [unique] SERVER_INFO_1537 *srv1537;
5134 * IDL [case(1538)] [unique] SERVER_INFO_1538 *srv1538;
5135 * IDL [case(1539)] [unique] SERVER_INFO_1539 *srv1539;
5136 * IDL [case(1540)] [unique] SERVER_INFO_1540 *srv1540;
5137 * IDL [case(1541)] [unique] SERVER_INFO_1541 *srv1541;
5138 * IDL [case(1542)] [unique] SERVER_INFO_1542 *srv1542;
5139 * IDL [case(1543)] [unique] SERVER_INFO_1543 *srv1543;
5140 * IDL [case(1544)] [unique] SERVER_INFO_1544 *srv1544;
5141 * IDL [case(1545)] [unique] SERVER_INFO_1545 *srv1545;
5142 * IDL [case(1546)] [unique] SERVER_INFO_1546 *srv1546;
5143 * IDL [case(1547)] [unique] SERVER_INFO_1547 *srv1547;
5144 * IDL [case(1548)] [unique] SERVER_INFO_1548 *srv1548;
5145 * IDL [case(1549)] [unique] SERVER_INFO_1549 *srv1549;
5146 * IDL [case(1550)] [unique] SERVER_INFO_1550 *srv1550;
5147 * IDL [case(1552)] [unique] SERVER_INFO_1552 *srv1552;
5148 * IDL [case(1553)] [unique] SERVER_INFO_1553 *srv1553;
5149 * IDL [case(1554)] [unique] SERVER_INFO_1554 *srv1554;
5150 * IDL [case(1555)] [unique] SERVER_INFO_1555 *srv1555;
5151 * IDL [case(1556)] [unique] SERVER_INFO_1556 *srv1556;
5152 * IDL } SERVER_INFO_UNION;
5155 srvsvc_dissect_SERVER_INFO_UNION(tvbuff_t *tvb, int offset,
5156 packet_info *pinfo, proto_tree *tree,
5163 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_info_level, &level);
5167 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5168 srvsvc_dissect_SERVER_INFO_100,
5169 NDR_POINTER_UNIQUE, "SERVER_INFO_100:",
5174 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5175 srvsvc_dissect_SERVER_INFO_101,
5176 NDR_POINTER_UNIQUE, "SERVER_INFO_101:",
5181 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5182 srvsvc_dissect_SERVER_INFO_102,
5183 NDR_POINTER_UNIQUE, "SERVER_INFO_102:",
5188 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5189 srvsvc_dissect_SERVER_INFO_402,
5190 NDR_POINTER_UNIQUE, "SERVER_INFO_402:",
5195 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5196 srvsvc_dissect_SERVER_INFO_403,
5197 NDR_POINTER_UNIQUE, "SERVER_INFO_403:",
5202 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5203 srvsvc_dissect_SERVER_INFO_502,
5204 NDR_POINTER_UNIQUE, "SERVER_INFO_502:",
5209 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5210 srvsvc_dissect_SERVER_INFO_503,
5211 NDR_POINTER_UNIQUE, "SERVER_INFO_503:",
5216 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5217 srvsvc_dissect_SERVER_INFO_599,
5218 NDR_POINTER_UNIQUE, "SERVER_INFO_599:",
5223 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5224 srvsvc_dissect_SERVER_INFO_1005,
5225 NDR_POINTER_UNIQUE, "SERVER_INFO_1005:",
5230 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5231 srvsvc_dissect_SERVER_INFO_1010,
5232 NDR_POINTER_UNIQUE, "SERVER_INFO_1010:",
5237 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5238 srvsvc_dissect_SERVER_INFO_1016,
5239 NDR_POINTER_UNIQUE, "SERVER_INFO_1016:",
5244 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5245 srvsvc_dissect_SERVER_INFO_1017,
5246 NDR_POINTER_UNIQUE, "SERVER_INFO_1017:",
5251 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5252 srvsvc_dissect_SERVER_INFO_1018,
5253 NDR_POINTER_UNIQUE, "SERVER_INFO_1018:",
5258 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5259 srvsvc_dissect_SERVER_INFO_1107,
5260 NDR_POINTER_UNIQUE, "SERVER_INFO_1107:",
5265 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5266 srvsvc_dissect_SERVER_INFO_1501,
5267 NDR_POINTER_UNIQUE, "SERVER_INFO_1501:",
5272 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5273 srvsvc_dissect_SERVER_INFO_1502,
5274 NDR_POINTER_UNIQUE, "SERVER_INFO_1502:",
5279 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5280 srvsvc_dissect_SERVER_INFO_1503,
5281 NDR_POINTER_UNIQUE, "SERVER_INFO_1503:",
5286 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5287 srvsvc_dissect_SERVER_INFO_1506,
5288 NDR_POINTER_UNIQUE, "SERVER_INFO_1506:",
5293 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5294 srvsvc_dissect_SERVER_INFO_1509,
5295 NDR_POINTER_UNIQUE, "SERVER_INFO_1509:",
5300 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5301 srvsvc_dissect_SERVER_INFO_1510,
5302 NDR_POINTER_UNIQUE, "SERVER_INFO_1510:",
5307 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5308 srvsvc_dissect_SERVER_INFO_1511,
5309 NDR_POINTER_UNIQUE, "SERVER_INFO_1511:",
5314 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5315 srvsvc_dissect_SERVER_INFO_1512,
5316 NDR_POINTER_UNIQUE, "SERVER_INFO_1512:",
5321 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5322 srvsvc_dissect_SERVER_INFO_1513,
5323 NDR_POINTER_UNIQUE, "SERVER_INFO_1513:",
5328 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5329 srvsvc_dissect_SERVER_INFO_1514,
5330 NDR_POINTER_UNIQUE, "SERVER_INFO_1514:",
5335 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5336 srvsvc_dissect_SERVER_INFO_1515,
5337 NDR_POINTER_UNIQUE, "SERVER_INFO_1515:",
5342 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5343 srvsvc_dissect_SERVER_INFO_1516,
5344 NDR_POINTER_UNIQUE, "SERVER_INFO_1516:",
5349 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5350 srvsvc_dissect_SERVER_INFO_1518,
5351 NDR_POINTER_UNIQUE, "SERVER_INFO_1518:",
5356 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5357 srvsvc_dissect_SERVER_INFO_1520,
5358 NDR_POINTER_UNIQUE, "SERVER_INFO_1520:",
5363 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5364 srvsvc_dissect_SERVER_INFO_1521,
5365 NDR_POINTER_UNIQUE, "SERVER_INFO_1521:",
5370 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5371 srvsvc_dissect_SERVER_INFO_1522,
5372 NDR_POINTER_UNIQUE, "SERVER_INFO_1522:",
5377 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5378 srvsvc_dissect_SERVER_INFO_1523,
5379 NDR_POINTER_UNIQUE, "SERVER_INFO_1523:",
5384 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5385 srvsvc_dissect_SERVER_INFO_1524,
5386 NDR_POINTER_UNIQUE, "SERVER_INFO_1524:",
5391 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5392 srvsvc_dissect_SERVER_INFO_1525,
5393 NDR_POINTER_UNIQUE, "SERVER_INFO_1525:",
5398 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5399 srvsvc_dissect_SERVER_INFO_1528,
5400 NDR_POINTER_UNIQUE, "SERVER_INFO_1528:",
5405 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5406 srvsvc_dissect_SERVER_INFO_1529,
5407 NDR_POINTER_UNIQUE, "SERVER_INFO_1529:",
5412 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5413 srvsvc_dissect_SERVER_INFO_1530,
5414 NDR_POINTER_UNIQUE, "SERVER_INFO_1530:",
5419 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5420 srvsvc_dissect_SERVER_INFO_1533,
5421 NDR_POINTER_UNIQUE, "SERVER_INFO_1533:",
5426 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5427 srvsvc_dissect_SERVER_INFO_1534,
5428 NDR_POINTER_UNIQUE, "SERVER_INFO_1534:",
5433 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5434 srvsvc_dissect_SERVER_INFO_1535,
5435 NDR_POINTER_UNIQUE, "SERVER_INFO_1535:",
5440 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5441 srvsvc_dissect_SERVER_INFO_1536,
5442 NDR_POINTER_UNIQUE, "SERVER_INFO_1536:",
5447 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5448 srvsvc_dissect_SERVER_INFO_1537,
5449 NDR_POINTER_UNIQUE, "SERVER_INFO_1537:",
5454 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5455 srvsvc_dissect_SERVER_INFO_1538,
5456 NDR_POINTER_UNIQUE, "SERVER_INFO_1538:",
5461 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5462 srvsvc_dissect_SERVER_INFO_1539,
5463 NDR_POINTER_UNIQUE, "SERVER_INFO_1539:",
5468 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5469 srvsvc_dissect_SERVER_INFO_1540,
5470 NDR_POINTER_UNIQUE, "SERVER_INFO_1540:",
5475 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5476 srvsvc_dissect_SERVER_INFO_1541,
5477 NDR_POINTER_UNIQUE, "SERVER_INFO_1541:",
5482 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5483 srvsvc_dissect_SERVER_INFO_1542,
5484 NDR_POINTER_UNIQUE, "SERVER_INFO_1542:",
5489 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5490 srvsvc_dissect_SERVER_INFO_1543,
5491 NDR_POINTER_UNIQUE, "SERVER_INFO_1543:",
5496 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5497 srvsvc_dissect_SERVER_INFO_1544,
5498 NDR_POINTER_UNIQUE, "SERVER_INFO_1544:",
5503 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5504 srvsvc_dissect_SERVER_INFO_1545,
5505 NDR_POINTER_UNIQUE, "SERVER_INFO_1545:",
5510 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5511 srvsvc_dissect_SERVER_INFO_1546,
5512 NDR_POINTER_UNIQUE, "SERVER_INFO_1546:",
5517 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5518 srvsvc_dissect_SERVER_INFO_1547,
5519 NDR_POINTER_UNIQUE, "SERVER_INFO_1547:",
5524 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5525 srvsvc_dissect_SERVER_INFO_1548,
5526 NDR_POINTER_UNIQUE, "SERVER_INFO_1548:",
5531 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5532 srvsvc_dissect_SERVER_INFO_1549,
5533 NDR_POINTER_UNIQUE, "SERVER_INFO_1549:",
5538 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5539 srvsvc_dissect_SERVER_INFO_1550,
5540 NDR_POINTER_UNIQUE, "SERVER_INFO_1550:",
5545 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5546 srvsvc_dissect_SERVER_INFO_1552,
5547 NDR_POINTER_UNIQUE, "SERVER_INFO_1552:",
5552 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5553 srvsvc_dissect_SERVER_INFO_1553,
5554 NDR_POINTER_UNIQUE, "SERVER_INFO_1553:",
5559 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5560 srvsvc_dissect_SERVER_INFO_1554,
5561 NDR_POINTER_UNIQUE, "SERVER_INFO_1554:",
5566 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5567 srvsvc_dissect_SERVER_INFO_1555,
5568 NDR_POINTER_UNIQUE, "SERVER_INFO_1555:",
5573 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5574 srvsvc_dissect_SERVER_INFO_1556,
5575 NDR_POINTER_UNIQUE, "SERVER_INFO_1556:",
5585 * IDL long NetrServerGetInfo(
5586 * IDL [in] [string] [unique] wchar_t *ServerName,
5587 * IDL [in] long Level,
5588 * IDL [out] [ref] SERVER_INFO_UNION *srv;
5592 srvsvc_dissect_netrservergetinfo_rqst(tvbuff_t *tvb, int offset,
5593 packet_info *pinfo, proto_tree *tree,
5596 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5597 srvsvc_dissect_pointer_UNICODE_STRING,
5598 NDR_POINTER_UNIQUE, "Server",
5599 hf_srvsvc_server, 0);
5601 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5602 hf_srvsvc_info_level, 0);
5607 srvsvc_dissect_netrservergetinfo_reply(tvbuff_t *tvb, int offset,
5608 packet_info *pinfo, proto_tree *tree,
5611 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5612 srvsvc_dissect_SERVER_INFO_UNION,
5613 NDR_POINTER_REF, "Server Info",
5616 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
5617 hf_srvsvc_rc, NULL);
5623 * IDL long NetrServerSetInfo(
5624 * IDL [in] [string] [unique] wchar_t *ServerName,
5625 * IDL [in] long Level,
5626 * IDL [in] [ref] SERVER_INFO_UNION *srv;
5627 * IDL [in] [out] [unique] long *ParamError;
5631 srvsvc_dissect_netrserversetinfo_rqst(tvbuff_t *tvb, int offset,
5632 packet_info *pinfo, proto_tree *tree,
5635 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5636 srvsvc_dissect_pointer_UNICODE_STRING,
5637 NDR_POINTER_UNIQUE, "Server",
5638 hf_srvsvc_server, 0);
5640 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5641 hf_srvsvc_info_level, 0);
5643 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5644 srvsvc_dissect_SERVER_INFO_UNION,
5645 NDR_POINTER_REF, "Server Info",
5648 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5649 srvsvc_dissect_pointer_long, NDR_POINTER_UNIQUE,
5650 "Parameter Error:", hf_srvsvc_parm_error, 0);
5655 srvsvc_dissect_netrserversetinfo_reply(tvbuff_t *tvb, int offset,
5656 packet_info *pinfo, proto_tree *tree,
5659 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5660 srvsvc_dissect_pointer_long, NDR_POINTER_UNIQUE,
5661 "Parameter Error:", hf_srvsvc_parm_error, 0);
5663 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
5664 hf_srvsvc_rc, NULL);
5671 * IDL typedef struct {
5672 * IDL [size_is()] [unique] wchar_t *disk;
5673 * IDL } DISK_INFO_0;
5676 srvsvc_dissect_DISK_INFO_0(tvbuff_t *tvb, int offset,
5677 packet_info *pinfo, proto_tree *tree,
5686 di=pinfo->private_data;
5687 if(di->conformant_run){
5688 /* this call is to make ethereal eat the array header for the conformant run */
5689 offset =dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, NULL);
5693 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5694 hf_srvsvc_disk_name_len, &len);
5697 offset = prs_uint16s(tvb, offset, pinfo, tree, len, &data16_offset,
5699 text = fake_unicode(tvb, data16_offset, len);
5701 proto_tree_add_string(tree, hf_srvsvc_disk_name, tvb, old_offset,
5702 offset-old_offset, text);
5708 srvsvc_dissect_DISK_INFO_0_array(tvbuff_t *tvb, int offset,
5709 packet_info *pinfo, proto_tree *tree,
5712 offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep,
5713 srvsvc_dissect_DISK_INFO_0);
5719 * IDL typedef struct {
5720 * IDL long EntriesRead;
5721 * IDL [length_is(EntriesRead)] [size_is(EntriesRead)] [unique] DISK_INFO_0 *disk;
5722 * IDL } DISK_ENUM_CONTAINER;
5725 srvsvc_dissect_DISK_ENUM_CONTAINER(tvbuff_t *tvb, int offset,
5726 packet_info *pinfo, proto_tree *tree,
5729 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5730 hf_srvsvc_num_entries, NULL);
5732 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5733 srvsvc_dissect_DISK_INFO_0_array, NDR_POINTER_UNIQUE,
5734 "DISK_INFO_0 array:", -1, 0);
5741 * IDL long NetrServerDiskEnum(
5742 * IDL [in] [string] [unique] wchar_t *ServerName,
5743 * IDL [in] long Level,
5744 * IDL [in] [out] [ref] DISK_ENUM_CONTAINER *disk;
5745 * IDL [in] long maxlen,
5746 * IDL [out] long entries,
5747 * IDL [in] [out] [unique] long *resumehandle,
5751 srvsvc_dissect_netrserverdiskenum_rqst(tvbuff_t *tvb, int offset,
5752 packet_info *pinfo, proto_tree *tree,
5755 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5756 srvsvc_dissect_pointer_UNICODE_STRING,
5757 NDR_POINTER_UNIQUE, "Server",
5758 hf_srvsvc_server, 0);
5760 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5761 hf_srvsvc_info_level, 0);
5763 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5764 srvsvc_dissect_DISK_ENUM_CONTAINER,
5765 NDR_POINTER_REF, "Disks",
5768 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5769 hf_srvsvc_preferred_len, 0);
5771 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5772 srvsvc_dissect_ENUM_HANDLE,
5773 NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
5778 srvsvc_dissect_netrserverdiskenum_reply(tvbuff_t *tvb, int offset,
5779 packet_info *pinfo, proto_tree *tree,
5782 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5783 srvsvc_dissect_DISK_ENUM_CONTAINER,
5784 NDR_POINTER_REF, "Disks",
5787 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5788 hf_srvsvc_num_entries, NULL);
5790 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5791 srvsvc_dissect_ENUM_HANDLE,
5792 NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
5798 * IDL typedef struct {
5801 * IDL long devopens;
5802 * IDL long jobsqueued;
5804 * IDL long stimeouts;
5805 * IDL long serrorout;
5806 * IDL long pwerrors;
5807 * IDL long permerrors;
5808 * IDL long syserrors;
5809 * IDL long bytessent_low;
5810 * IDL long bytessent_high;
5811 * IDL long bytesrcvd_low;
5812 * IDL long bytesrcvd_high;
5813 * IDL long avresponse;
5814 * IDL long reqbufneed;
5815 * IDL long bigbufneed;
5816 * IDL } SERVER_STAT;
5820 srvsvc_dissect_SERVER_STAT(tvbuff_t *tvb, int offset,
5821 packet_info *pinfo, proto_tree *tree,
5824 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5825 hf_srvsvc_server_stat_start, NULL);
5827 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5828 hf_srvsvc_server_stat_fopens, NULL);
5830 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5831 hf_srvsvc_server_stat_devopens, NULL);
5833 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5834 hf_srvsvc_server_stat_jobsqueued, NULL);
5836 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5837 hf_srvsvc_server_stat_sopens, NULL);
5839 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5840 hf_srvsvc_server_stat_stimeouts, NULL);
5842 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5843 hf_srvsvc_server_stat_serrorout, NULL);
5845 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5846 hf_srvsvc_server_stat_pwerrors, NULL);
5848 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5849 hf_srvsvc_server_stat_permerrors, NULL);
5851 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5852 hf_srvsvc_server_stat_syserrors, NULL);
5854 offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep,
5855 hf_srvsvc_server_stat_bytessent, NULL);
5857 offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep,
5858 hf_srvsvc_server_stat_bytesrcvd, NULL);
5860 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5861 hf_srvsvc_server_stat_avresponse, NULL);
5863 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5864 hf_srvsvc_server_stat_reqbufneed, NULL);
5866 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5867 hf_srvsvc_server_stat_bigbufneed, NULL);
5873 * IDL long NetrServerStatisticsGet(
5874 * IDL [in] [string] [unique] wchar_t *ServerName,
5875 * IDL [in] [string] [unique] wchar_t *Service,
5876 * IDL [in] long Level,
5877 * IDL [in] long Options,
5878 * IDL [out] [ref] SERVER_STAT *stat
5882 srvsvc_dissect_netrserverstatisticsget_rqst(tvbuff_t *tvb, int offset,
5883 packet_info *pinfo, proto_tree *tree,
5886 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5887 srvsvc_dissect_pointer_UNICODE_STRING,
5888 NDR_POINTER_UNIQUE, "Server",
5889 hf_srvsvc_server, 0);
5891 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5892 srvsvc_dissect_pointer_UNICODE_STRING,
5893 NDR_POINTER_UNIQUE, "Service",
5894 hf_srvsvc_service, 0);
5896 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5897 hf_srvsvc_info_level, 0);
5899 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5900 hf_srvsvc_service_options, 0);
5905 srvsvc_dissect_netrserverstatisticsget_reply(tvbuff_t *tvb, int offset,
5906 packet_info *pinfo, proto_tree *tree,
5909 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5910 srvsvc_dissect_SERVER_STAT,
5911 NDR_POINTER_REF, "Stat",
5914 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
5915 hf_srvsvc_rc, NULL);
5921 * IDL typedef struct {
5922 * IDL [size_is(transportaddresslen)] char transportaddress;
5923 * IDL } TRANSPORT_ADDRESS;
5926 srvsvc_dissect_TRANSPORT_ADDRESS(tvbuff_t *tvb, int offset,
5927 packet_info *pinfo, proto_tree *tree,
5933 di=pinfo->private_data;
5934 if(di->conformant_run){
5935 /*just a run to handle conformant arrays, nothing to dissect */
5939 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5940 hf_srvsvc_transport_address_len, &len);
5942 proto_tree_add_item(tree, hf_srvsvc_transport_address, tvb, offset,
5950 * IDL typedef struct {
5951 * IDL long numberofvcs;
5952 * IDL [string] [unique] transportname;
5953 * IDL [unique] TRANSPORT_ADDRESS *transportaddress;
5954 * IDL long transportaddresslen;
5955 * IDL [string] [unique] wchar_t *networkaddress;
5956 * IDL } TRANSPORT_INFO_0;
5959 srvsvc_dissect_TRANSPORT_INFO_0(tvbuff_t *tvb, int offset,
5960 packet_info *pinfo, proto_tree *tree,
5963 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5964 hf_srvsvc_transport_numberofvcs, 0);
5966 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5967 srvsvc_dissect_pointer_UNICODE_STRING,
5968 NDR_POINTER_UNIQUE, "Name",
5969 hf_srvsvc_transport_name, 0);
5971 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5972 srvsvc_dissect_TRANSPORT_ADDRESS,
5973 NDR_POINTER_UNIQUE, "Transport Address",
5976 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5977 hf_srvsvc_transport_address_len, 0);
5979 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5980 srvsvc_dissect_pointer_UNICODE_STRING,
5981 NDR_POINTER_UNIQUE, "Network Address",
5982 hf_srvsvc_transport_networkaddress, 0);
5987 srvsvc_dissect_TRANSPORT_INFO_0_array(tvbuff_t *tvb, int offset,
5988 packet_info *pinfo, proto_tree *tree,
5991 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
5992 srvsvc_dissect_TRANSPORT_INFO_0);
5998 * IDL typedef struct {
5999 * IDL long EntriesRead;
6000 * IDL [size_is(EntriesRead)] [unique] TRANSPORT_INFO_0 *trans;
6001 * IDL } SERVER_XPORT_INFO_0_CONTAINER;
6004 srvsvc_dissect_SERVER_XPORT_INFO_0_CONTAINER(tvbuff_t *tvb, int offset,
6005 packet_info *pinfo, proto_tree *tree,
6008 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6009 hf_srvsvc_num_entries, NULL);
6011 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6012 srvsvc_dissect_TRANSPORT_INFO_0_array, NDR_POINTER_UNIQUE,
6013 "TRANSPORT_INFO_0 array:", -1, 0);
6019 * IDL typedef struct {
6020 * IDL long numberofvcs;
6021 * IDL [string] [unique] transportname;
6022 * IDL [unique] TRANSPORT_ADDRESS *transportaddress;
6023 * IDL long transportaddresslen;
6024 * IDL [string] [unique] wchar_t *networkaddress;
6025 * IDL } TRANSPORT_INFO_1;
6028 srvsvc_dissect_TRANSPORT_INFO_1(tvbuff_t *tvb, int offset,
6029 packet_info *pinfo, proto_tree *tree,
6032 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6033 hf_srvsvc_transport_numberofvcs, 0);
6035 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6036 srvsvc_dissect_pointer_UNICODE_STRING,
6037 NDR_POINTER_UNIQUE, "Name",
6038 hf_srvsvc_transport_name, 0);
6040 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6041 srvsvc_dissect_TRANSPORT_ADDRESS,
6042 NDR_POINTER_UNIQUE, "Transport Address",
6045 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6046 hf_srvsvc_transport_address_len, 0);
6048 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6049 srvsvc_dissect_pointer_UNICODE_STRING,
6050 NDR_POINTER_UNIQUE, "Network Address",
6051 hf_srvsvc_transport_networkaddress, 0);
6053 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6054 srvsvc_dissect_pointer_UNICODE_STRING,
6055 NDR_POINTER_UNIQUE, "Domain",
6056 hf_srvsvc_domain, 0);
6061 srvsvc_dissect_TRANSPORT_INFO_1_array(tvbuff_t *tvb, int offset,
6062 packet_info *pinfo, proto_tree *tree,
6065 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
6066 srvsvc_dissect_TRANSPORT_INFO_1);
6072 * IDL typedef struct {
6073 * IDL long EntriesRead;
6074 * IDL [size_is(EntriesRead)] [unique] TRANSPORT_INFO_1 *trans;
6075 * IDL } SERVER_XPORT_INFO_1_CONTAINER;
6078 srvsvc_dissect_SERVER_XPORT_INFO_1_CONTAINER(tvbuff_t *tvb, int offset,
6079 packet_info *pinfo, proto_tree *tree,
6082 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6083 hf_srvsvc_num_entries, NULL);
6085 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6086 srvsvc_dissect_TRANSPORT_INFO_1_array, NDR_POINTER_UNIQUE,
6087 "TRANSPORT_INFO_1 array:", -1, 0);
6094 * IDL typedef [switch_type(long)] union {
6095 * IDL [case(0)] [unique] SERVER_XPORT_INFO_0_CONTAINER *xp0;
6096 * IDL [case(1)] [unique] SERVER_XPORT_INFO_1_CONTAINER *xp1;
6097 * IDL } SERVER_XPORT_ENUM_UNION;
6100 srvsvc_dissect_SERVER_XPORT_ENUM_UNION(tvbuff_t *tvb, int offset,
6101 packet_info *pinfo, proto_tree *tree,
6108 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_info_level, &level);
6112 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6113 srvsvc_dissect_SERVER_XPORT_INFO_0_CONTAINER,
6114 NDR_POINTER_UNIQUE, "SERVER_XPORT_INFO_0_CONTAINER:",
6118 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6119 srvsvc_dissect_SERVER_XPORT_INFO_1_CONTAINER,
6120 NDR_POINTER_UNIQUE, "SERVER_XPORT_INFO_1_CONTAINER:",
6129 * IDL typedef struct {
6131 * IDL SERVER_XPORT_ENUM_UNION xport;
6132 * IDL } SERVER_XPORT_ENUM_STRUCT;
6135 srvsvc_dissect_SERVER_XPORT_ENUM_STRUCT(tvbuff_t *tvb, int offset,
6136 packet_info *pinfo, proto_tree *tree,
6139 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6140 hf_srvsvc_info_level, 0);
6142 offset = srvsvc_dissect_SERVER_XPORT_ENUM_UNION(tvb, offset,
6150 * IDL long NetrServerTransportAdd(
6151 * IDL [in] [string] [unique] wchar_t *ServerName,
6152 * IDL [in] long Level,
6153 * IDL [in] [ref] TRANSPORT_INFO_0 *trans;
6157 srvsvc_dissect_netrservertransportadd_rqst(tvbuff_t *tvb, int offset,
6158 packet_info *pinfo, proto_tree *tree,
6161 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6162 srvsvc_dissect_pointer_UNICODE_STRING,
6163 NDR_POINTER_UNIQUE, "Server",
6164 hf_srvsvc_server, 0);
6166 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6167 hf_srvsvc_info_level, 0);
6169 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6170 srvsvc_dissect_TRANSPORT_INFO_0,
6171 NDR_POINTER_REF, "Transports",
6177 srvsvc_dissect_netrservertransportadd_reply(tvbuff_t *tvb, int offset,
6178 packet_info *pinfo, proto_tree *tree,
6181 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
6182 hf_srvsvc_rc, NULL);
6188 * IDL long NetrServerTransportEnum(
6189 * IDL [in] [string] [unique] wchar_t *ServerName,
6190 * IDL [in] [out] [ref] SERVER_XPORT_ENUM_STRUCT *xport;
6191 * IDL [in] long MaxLen,
6192 * IDL [out] long entries,
6193 * IDL [in] [out] [unique] long *resumehandle;
6197 srvsvc_dissect_netrservertransportenum_rqst(tvbuff_t *tvb, int offset,
6198 packet_info *pinfo, proto_tree *tree,
6201 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6202 srvsvc_dissect_pointer_UNICODE_STRING,
6203 NDR_POINTER_UNIQUE, "Server",
6204 hf_srvsvc_server, 0);
6206 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6207 srvsvc_dissect_SERVER_XPORT_ENUM_STRUCT,
6208 NDR_POINTER_REF, "Transports",
6211 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6212 hf_srvsvc_preferred_len, 0);
6214 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6215 srvsvc_dissect_ENUM_HANDLE,
6216 NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
6221 srvsvc_dissect_netrservertransportenum_reply(tvbuff_t *tvb, int offset,
6222 packet_info *pinfo, proto_tree *tree,
6225 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6226 srvsvc_dissect_SERVER_XPORT_ENUM_STRUCT,
6227 NDR_POINTER_REF, "Transports",
6230 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6231 hf_srvsvc_num_entries, NULL);
6233 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6234 srvsvc_dissect_ENUM_HANDLE,
6235 NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
6237 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
6238 hf_srvsvc_rc, NULL);
6245 * IDL long NetrServerTransportDel(
6246 * IDL [in] [string] [unique] wchar_t *ServerName,
6247 * IDL [in] long Level,
6248 * IDL [in] [ref] TRANSPORT_INFO_0 *trans;
6252 srvsvc_dissect_netrservertransportdel_rqst(tvbuff_t *tvb, int offset,
6253 packet_info *pinfo, proto_tree *tree,
6256 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6257 srvsvc_dissect_pointer_UNICODE_STRING,
6258 NDR_POINTER_UNIQUE, "Server",
6259 hf_srvsvc_server, 0);
6261 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6262 hf_srvsvc_info_level, 0);
6264 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6265 srvsvc_dissect_TRANSPORT_INFO_0,
6266 NDR_POINTER_REF, "Transports",
6272 srvsvc_dissect_netrservertransportdel_reply(tvbuff_t *tvb, int offset,
6273 packet_info *pinfo, proto_tree *tree,
6276 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
6277 hf_srvsvc_rc, NULL);
6283 * IDL typedef struct {
6290 * IDL long timezone;
6291 * IDL long tinterval;
6299 srvsvc_dissect_TIMEOFDAY(tvbuff_t *tvb, int offset,
6300 packet_info *pinfo, proto_tree *tree,
6304 * XXX - is "hf_srvsvc_tod_elapsed" something that should be
6305 * processed by "add_abstime_absent_unknown()" from
6306 * "packet-smb-pipe.c"? This structure looks similar
6307 * to the result of a NetRemoteTOD RAP call, and that has
6308 * a "current time" field that's processed by
6309 * "add_abstime_absent_unknown()".
6311 * Should other fields, such as the time zone offset and
6312 * the time interval, be processed as they are for
6313 * "lm_data_resp_netremotetod_nolevel" as well?
6315 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6316 hf_srvsvc_tod_elapsed, NULL);
6317 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6318 hf_srvsvc_tod_msecs, NULL);
6319 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6320 hf_srvsvc_tod_hours, NULL);
6321 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6322 hf_srvsvc_tod_mins, NULL);
6323 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6324 hf_srvsvc_tod_secs, NULL);
6325 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6326 hf_srvsvc_tod_hunds, NULL);
6327 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6328 hf_srvsvc_tod_timezone, NULL);
6329 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6330 hf_srvsvc_tod_tinterval, NULL);
6331 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6332 hf_srvsvc_tod_day, NULL);
6333 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6334 hf_srvsvc_tod_month, NULL);
6335 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6336 hf_srvsvc_tod_year, NULL);
6337 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6338 hf_srvsvc_tod_weekday, NULL);
6344 * IDL long NetrRemoteTOD(
6345 * IDL [in] [string] [unique] wchar_t *ServerName,
6346 * IDL [out] [unique] TIMEOFDAY *t
6350 srvsvc_dissect_netrremotetod_rqst(tvbuff_t *tvb, int offset,
6351 packet_info *pinfo, proto_tree *tree,
6354 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6355 srvsvc_dissect_pointer_UNICODE_STRING,
6356 NDR_POINTER_UNIQUE, "Server",
6357 hf_srvsvc_server, 0);
6362 srvsvc_dissect_netrremotetod_reply(tvbuff_t *tvb, int offset,
6363 packet_info *pinfo, proto_tree *tree,
6366 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6367 srvsvc_dissect_TIMEOFDAY,
6368 NDR_POINTER_UNIQUE, "Time of day",
6371 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
6372 hf_srvsvc_rc, NULL);
6378 * IDL long NetrSetServerServiceBits(
6379 * IDL [in] [string] [unique] wchar_t *ServerName,
6380 * IDL [in] [string] [unique] wchar_t *Transport,
6381 * IDL [in] long ServiceBits;
6382 * IDL [in] long UpdateImmediately;
6386 srvsvc_dissect_netrsetserverservicebits_rqst(tvbuff_t *tvb, int offset,
6387 packet_info *pinfo, proto_tree *tree,
6390 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6391 srvsvc_dissect_pointer_UNICODE_STRING,
6392 NDR_POINTER_UNIQUE, "Server",
6393 hf_srvsvc_server, 0);
6395 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6396 srvsvc_dissect_pointer_UNICODE_STRING,
6397 NDR_POINTER_UNIQUE, "Transport:",
6398 hf_srvsvc_transport, 0);
6400 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6401 hf_srvsvc_service_bits, NULL);
6403 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6404 hf_srvsvc_update_immediately, NULL);
6409 srvsvc_dissect_netrsetserverservicebits_reply(tvbuff_t *tvb, int offset,
6410 packet_info *pinfo, proto_tree *tree,
6413 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
6414 hf_srvsvc_rc, NULL);
6420 * IDL long NetrPathType(
6421 * IDL [in] [string] [unique] wchar_t *ServerName,
6422 * IDL [in] [string] [ref] wchar_t *PathName,
6423 * IDL [in] long PathFlags;
6424 * IDL [out] long PathType;
6428 srvsvc_dissect_netrpathtype_rqst(tvbuff_t *tvb, int offset,
6429 packet_info *pinfo, proto_tree *tree,
6432 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6433 srvsvc_dissect_pointer_UNICODE_STRING,
6434 NDR_POINTER_UNIQUE, "Server",
6435 hf_srvsvc_server, 0);
6437 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6438 srvsvc_dissect_pointer_UNICODE_STRING,
6439 NDR_POINTER_REF, "Path:",
6442 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6443 hf_srvsvc_path_flags, NULL);
6448 srvsvc_dissect_netrpathtype_reply(tvbuff_t *tvb, int offset,
6449 packet_info *pinfo, proto_tree *tree,
6452 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6453 hf_srvsvc_path_type, NULL);
6455 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
6456 hf_srvsvc_rc, NULL);
6462 * IDL long NetrPathCanonicalize(
6463 * IDL [in] [string] [unique] wchar_t *ServerName,
6464 * IDL [in] [string] [ref] wchar_t *PathName,
6465 * IDL [in] long OutBufLen;
6466 * IDL [in] [string] [ref] wchar_t *Prefix,
6467 * IDL [in] [out] [ref] long *PathType;
6468 * IDL [in] long PathFlags;
6472 srvsvc_dissect_netrpathcanonicalize_rqst(tvbuff_t *tvb, int offset,
6473 packet_info *pinfo, proto_tree *tree,
6476 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6477 srvsvc_dissect_pointer_UNICODE_STRING,
6478 NDR_POINTER_UNIQUE, "Server",
6479 hf_srvsvc_server, 0);
6481 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6482 srvsvc_dissect_pointer_UNICODE_STRING,
6483 NDR_POINTER_REF, "Path:",
6486 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6487 hf_srvsvc_outbuflen, NULL);
6489 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6490 srvsvc_dissect_pointer_UNICODE_STRING,
6491 NDR_POINTER_REF, "Prefix:",
6492 hf_srvsvc_prefix, 0);
6494 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6495 hf_srvsvc_path_type, NULL);
6497 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6498 hf_srvsvc_path_flags, NULL);
6503 srvsvc_dissect_netrpathcanonicalize_reply(tvbuff_t *tvb, int offset,
6504 packet_info *pinfo, proto_tree *tree,
6513 di=pinfo->private_data;
6514 if(di->conformant_run){
6515 /* this call is to make ethereal eat the array header for the conformant run */
6516 offset =dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, NULL);
6520 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6521 hf_srvsvc_path_len, &len);
6524 offset = prs_uint16s(tvb, offset, pinfo, tree, len, &data16_offset,
6526 text = fake_unicode(tvb, data16_offset, len);
6528 proto_tree_add_string(tree, hf_srvsvc_path, tvb, old_offset,
6529 offset-old_offset, text);
6535 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6536 hf_srvsvc_path_type, NULL);
6538 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
6539 hf_srvsvc_rc, NULL);
6546 * IDL long NetrPathCompare(
6547 * IDL [in] [string] [unique] wchar_t *ServerName,
6548 * IDL [in] [string] [ref] wchar_t *PathName1,
6549 * IDL [in] [string] [ref] wchar_t *PathName2,
6550 * IDL [in] long PathType;
6551 * IDL [in] long PathFlags;
6555 srvsvc_dissect_netrpathcompare_rqst(tvbuff_t *tvb, int offset,
6556 packet_info *pinfo, proto_tree *tree,
6559 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6560 srvsvc_dissect_pointer_UNICODE_STRING,
6561 NDR_POINTER_UNIQUE, "Server",
6562 hf_srvsvc_server, 0);
6564 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6565 srvsvc_dissect_pointer_UNICODE_STRING,
6566 NDR_POINTER_REF, "Path 1:",
6569 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6570 srvsvc_dissect_pointer_UNICODE_STRING,
6571 NDR_POINTER_REF, "Path 2:",
6574 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6575 hf_srvsvc_path_type, NULL);
6577 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6578 hf_srvsvc_path_flags, NULL);
6583 srvsvc_dissect_netrpathcompare_reply(tvbuff_t *tvb, int offset,
6584 packet_info *pinfo, proto_tree *tree,
6587 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
6588 hf_srvsvc_rc, NULL);
6595 * IDL long NetrNameValidate(
6596 * IDL [in] [string] [unique] wchar_t *ServerName,
6597 * IDL [in] [string] [ref] wchar_t *PathName,
6598 * IDL [in] long PathType;
6599 * IDL [in] long PathFlags;
6603 srvsvc_dissect_netrnamevalidate_rqst(tvbuff_t *tvb, int offset,
6604 packet_info *pinfo, proto_tree *tree,
6607 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6608 srvsvc_dissect_pointer_UNICODE_STRING,
6609 NDR_POINTER_UNIQUE, "Server",
6610 hf_srvsvc_server, 0);
6612 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6613 srvsvc_dissect_pointer_UNICODE_STRING,
6614 NDR_POINTER_REF, "Path:",
6617 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6618 hf_srvsvc_path_type, NULL);
6620 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6621 hf_srvsvc_path_flags, NULL);
6626 srvsvc_dissect_netrnamevalidate_reply(tvbuff_t *tvb, int offset,
6627 packet_info *pinfo, proto_tree *tree,
6630 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
6631 hf_srvsvc_rc, NULL);
6637 * IDL long NetrNameCanonicalize(
6638 * IDL [in] [string] [unique] wchar_t *ServerName,
6639 * IDL [in] [string] [ref] wchar_t *PathName,
6640 * IDL [in] long OutBufLen,
6641 * IDL [in] long PathType,
6642 * IDL [in] long PathFlags,
6643 * IDL [out] [ref] *PathName
6647 srvsvc_dissect_netrnamecanonicalize_rqst(tvbuff_t *tvb, int offset,
6648 packet_info *pinfo, proto_tree *tree,
6651 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6652 srvsvc_dissect_pointer_UNICODE_STRING,
6653 NDR_POINTER_UNIQUE, "Server",
6654 hf_srvsvc_server, 0);
6656 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6657 srvsvc_dissect_pointer_UNICODE_STRING,
6658 NDR_POINTER_REF, "Path:",
6661 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6662 hf_srvsvc_outbuflen, NULL);
6664 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6665 hf_srvsvc_path_type, NULL);
6667 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6668 hf_srvsvc_path_flags, NULL);
6673 srvsvc_dissect_netrnamecanonicalize_reply(tvbuff_t *tvb, int offset,
6674 packet_info *pinfo, proto_tree *tree,
6683 di=pinfo->private_data;
6684 if(di->conformant_run){
6685 /* this call is to make ethereal eat the array header for the conformant run */
6686 offset =dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, NULL);
6690 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6691 hf_srvsvc_path_len, &len);
6694 offset = prs_uint16s(tvb, offset, pinfo, tree, len, &data16_offset,
6696 text = fake_unicode(tvb, data16_offset, len);
6698 proto_tree_add_string(tree, hf_srvsvc_path, tvb, old_offset,
6699 offset-old_offset, text);
6704 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
6705 hf_srvsvc_rc, NULL);
6712 * IDL long NetrNameCompare(
6713 * IDL [in] [string] [unique] wchar_t *ServerName,
6714 * IDL [in] [string] [ref] wchar_t *PathName1,
6715 * IDL [in] [string] [ref] wchar_t *PathName2,
6716 * IDL [in] long PathType;
6717 * IDL [in] long PathFlags;
6721 srvsvc_dissect_netrnamecompare_rqst(tvbuff_t *tvb, int offset,
6722 packet_info *pinfo, proto_tree *tree,
6725 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6726 srvsvc_dissect_pointer_UNICODE_STRING,
6727 NDR_POINTER_UNIQUE, "Server",
6728 hf_srvsvc_server, 0);
6730 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6731 srvsvc_dissect_pointer_UNICODE_STRING,
6732 NDR_POINTER_REF, "Path 1:",
6735 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6736 srvsvc_dissect_pointer_UNICODE_STRING,
6737 NDR_POINTER_REF, "Path 2:",
6740 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6741 hf_srvsvc_path_type, NULL);
6743 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6744 hf_srvsvc_path_flags, NULL);
6749 srvsvc_dissect_netrnamecompare_reply(tvbuff_t *tvb, int offset,
6750 packet_info *pinfo, proto_tree *tree,
6753 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
6754 hf_srvsvc_rc, NULL);
6761 * IDL long NetrShareEnumSticky(
6762 * IDL [in] [string] [unique] wchar_t *ServerName,
6763 * IDL [in] [out] [ref] SHARE_ENUM_STRUCT *share,
6764 * IDL [in] long MaxLen,
6765 * IDL [out] long Entries,
6766 * IDL [in] [out] [unique] *ResumeHandle
6770 srvsvc_dissect_netrshareenumsticky_rqst(tvbuff_t *tvb, int offset,
6771 packet_info *pinfo, proto_tree *tree,
6774 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6775 srvsvc_dissect_pointer_UNICODE_STRING,
6776 NDR_POINTER_UNIQUE, "Server",
6777 hf_srvsvc_server, 0);
6779 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6780 srvsvc_dissect_SHARE_ENUM_STRUCT,
6781 NDR_POINTER_REF, "Shares",
6784 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6785 hf_srvsvc_preferred_len, 0);
6787 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6788 srvsvc_dissect_ENUM_HANDLE,
6789 NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
6794 srvsvc_dissect_netrshareenumsticky_reply(tvbuff_t *tvb, int offset,
6795 packet_info *pinfo, proto_tree *tree,
6798 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6799 srvsvc_dissect_SHARE_ENUM_STRUCT,
6800 NDR_POINTER_REF, "Shares",
6803 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6804 hf_srvsvc_num_entries, NULL);
6806 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6807 srvsvc_dissect_ENUM_HANDLE,
6808 NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
6810 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
6811 hf_srvsvc_rc, NULL);
6818 * IDL long NetrShareDelStart(
6819 * IDL [in] [string] [unique] wchar_t *ServerName,
6820 * IDL [in] [string] [ref] wchar_t *Share,
6821 * IDL [in] long reserved,
6822 * IDL [out] [context_handle] hnd
6826 srvsvc_dissect_netrsharedelstart_rqst(tvbuff_t *tvb, int offset,
6827 packet_info *pinfo, proto_tree *tree,
6830 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6831 srvsvc_dissect_pointer_UNICODE_STRING,
6832 NDR_POINTER_UNIQUE, "Server",
6833 hf_srvsvc_server, 0);
6835 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6836 srvsvc_dissect_pointer_UNICODE_STRING,
6837 NDR_POINTER_REF, "Share",
6838 hf_srvsvc_share, 0);
6840 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
6841 hf_srvsvc_reserved, NULL);
6846 srvsvc_dissect_netrsharedelstart_reply(tvbuff_t *tvb, int offset,
6847 packet_info *pinfo, proto_tree *tree,
6850 offset = dissect_nt_policy_hnd(tvb, offset, pinfo, tree, drep,
6851 hf_srvsvc_hnd, NULL, TRUE, FALSE);
6853 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
6854 hf_srvsvc_rc, NULL);
6860 * IDL long NetrShareDelCommit(
6861 * IDL [in] [out] [contect_handle] h
6865 srvsvc_dissect_netrsharedelcommit_rqst(tvbuff_t *tvb, int offset,
6866 packet_info *pinfo, proto_tree *tree,
6869 offset = dissect_nt_policy_hnd(tvb, offset, pinfo, tree, drep,
6870 hf_srvsvc_hnd, NULL, TRUE, FALSE);
6875 srvsvc_dissect_netrsharedelcommit_reply(tvbuff_t *tvb, int offset,
6876 packet_info *pinfo, proto_tree *tree,
6879 offset = dissect_nt_policy_hnd(tvb, offset, pinfo, tree, drep,
6880 hf_srvsvc_hnd, NULL, TRUE, FALSE);
6882 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
6883 hf_srvsvc_rc, NULL);
6889 /* XXX dont know the out parameters. only the in parameters.
6891 * IDL long NetrGetFileSecurity(
6892 * IDL [in] [string] [unique] wchar_t *ServerName,
6893 * IDL [in] [string] [unique] wchar_t *Share,
6894 * IDL [in] [string] [ref] wchar_t *File,
6895 * IDL [in] long requetedinformation
6896 * IDL [out] [ref] SECDESC *securitysecriptor; 4byte-len followed by bytestring
6900 srvsvc_dissect_netrgetfilesecurity_rqst(tvbuff_t *tvb, int offset,
6901 packet_info *pinfo, proto_tree *tree,
6904 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6905 srvsvc_dissect_pointer_UNICODE_STRING,
6906 NDR_POINTER_UNIQUE, "Server",
6907 hf_srvsvc_server, 0);
6909 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6910 srvsvc_dissect_pointer_UNICODE_STRING,
6911 NDR_POINTER_UNIQUE, "Share",
6912 hf_srvsvc_share, 0);
6914 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6915 srvsvc_dissect_pointer_UNICODE_STRING,
6916 NDR_POINTER_REF, "Path",
6920 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6921 hf_srvsvc_info_level, 0);
6926 srvsvc_dissect_netrgetfilesecurity_reply(tvbuff_t *tvb, int offset,
6927 packet_info *pinfo, proto_tree *tree,
6930 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6931 lsa_dissect_LSA_SECURITY_DESCRIPTOR_data, NDR_POINTER_REF,
6932 "LSA SECURITY DESCRIPTOR data:", -1, 0);
6934 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
6935 hf_srvsvc_rc, NULL);
6942 * IDL long NetrSetFileSecurity(
6943 * IDL [in] [string] [unique] wchar_t *ServerName,
6944 * IDL [in] [string] [unique] wchar_t *Share,
6945 * IDL [in] [string] [ref] wchar_t *File,
6946 * IDL [in] long sequrityinformation
6947 * IDL SECDESC [ref] *securitysecriptor; 4byte-len followed by bytestring
6951 srvsvc_dissect_netrsetfilesecurity_rqst(tvbuff_t *tvb, int offset,
6952 packet_info *pinfo, proto_tree *tree,
6955 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6956 srvsvc_dissect_pointer_UNICODE_STRING,
6957 NDR_POINTER_UNIQUE, "Server",
6958 hf_srvsvc_server, 0);
6960 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6961 srvsvc_dissect_pointer_UNICODE_STRING,
6962 NDR_POINTER_UNIQUE, "Share",
6963 hf_srvsvc_share, 0);
6965 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6966 srvsvc_dissect_pointer_UNICODE_STRING,
6967 NDR_POINTER_REF, "Path",
6971 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
6972 hf_srvsvc_info_level, 0);
6974 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
6975 lsa_dissect_LSA_SECURITY_DESCRIPTOR_data, NDR_POINTER_REF,
6976 "LSA SECURITY DESCRIPTOR data:", -1, 0);
6981 srvsvc_dissect_netrsetfilesecurity_reply(tvbuff_t *tvb, int offset,
6982 packet_info *pinfo, proto_tree *tree,
6985 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
6986 hf_srvsvc_rc, NULL);
6993 * IDL long NetrServerTransportAddEx(
6994 * IDL [in] [string] [unique] wchar_t *ServerName,
6995 * IDL [in] long Level
6996 * IDL [in] [ref] SERVER_XPORT_ENUM_STRUCT *sxes;
7000 srvsvc_dissect_netrservertransportaddex_rqst(tvbuff_t *tvb, int offset,
7001 packet_info *pinfo, proto_tree *tree,
7004 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
7005 srvsvc_dissect_pointer_UNICODE_STRING,
7006 NDR_POINTER_UNIQUE, "Server",
7007 hf_srvsvc_server, 0);
7009 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
7010 hf_srvsvc_info_level, 0);
7012 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
7013 srvsvc_dissect_SERVER_XPORT_ENUM_STRUCT,
7014 NDR_POINTER_REF, "Transports",
7020 srvsvc_dissect_netrservertransportaddex_reply(tvbuff_t *tvb, int offset,
7021 packet_info *pinfo, proto_tree *tree,
7024 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
7025 hf_srvsvc_rc, NULL);
7032 * IDL long NetrServerSetServiceBits2(
7033 * IDL [in] [string] [unique] wchar_t *ServerName,
7034 * IDL [in] [string] [unique] wchar_t *EmulatedServerName,
7035 * IDL [in] [string] [unique] wchar_t *Transport,
7036 * IDL [in] long servicebitsofinterest
7037 * IDL [in] long servicebits
7038 * IDL [in] long updateimmediately
7042 srvsvc_dissect_netrserversetservicebits2_rqst(tvbuff_t *tvb, int offset,
7043 packet_info *pinfo, proto_tree *tree,
7046 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
7047 srvsvc_dissect_pointer_UNICODE_STRING,
7048 NDR_POINTER_UNIQUE, "Server",
7049 hf_srvsvc_server, 0);
7051 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
7052 srvsvc_dissect_pointer_UNICODE_STRING,
7053 NDR_POINTER_UNIQUE, "Emulated Server",
7054 hf_srvsvc_emulated_server, 0);
7056 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
7057 srvsvc_dissect_pointer_UNICODE_STRING,
7058 NDR_POINTER_UNIQUE, "Transport:",
7059 hf_srvsvc_transport, 0);
7061 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
7062 hf_srvsvc_service_bits_of_interest, NULL);
7064 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
7065 hf_srvsvc_service_bits, NULL);
7067 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
7068 hf_srvsvc_update_immediately, NULL);
7073 srvsvc_dissect_netrserversetservicebits2_reply(tvbuff_t *tvb, int offset,
7074 packet_info *pinfo, proto_tree *tree,
7077 offset = dissect_doserror(tvb, offset, pinfo, tree, drep,
7078 hf_srvsvc_rc, NULL);
7089 static dcerpc_sub_dissector dcerpc_srvsvc_dissectors[] = {
7090 {SRV_NETRCHARDEVENUM, "NetrCharDevEnum",
7091 srvsvc_dissect_netrchardevenum_rqst,
7092 srvsvc_dissect_netrchardevenum_reply},
7093 {SRV_NETRCHARDEVGETINFO, "NetrCharDevGetInfo",
7094 srvsvc_dissect_netrchardevgetinfo_rqst,
7095 srvsvc_dissect_netrchardevgetinfo_reply},
7096 {SRV_NETRCHARDEVCONTROL, "NetrCharDevControl",
7097 srvsvc_dissect_netrchardevcontrol_rqst,
7098 srvsvc_dissect_netrchardevcontrol_reply},
7099 {SRV_NETRCHARDEVQENUM, "NetrCharDevQEnum",
7100 srvsvc_dissect_netrchardevqenum_rqst,
7101 srvsvc_dissect_netrchardevqenum_reply},
7102 {SRV_NETRCHARDEVQGETINFO, "NetrCharDevQGetInfo",
7103 srvsvc_dissect_netrchardevqgetinfo_rqst,
7104 srvsvc_dissect_netrchardevqgetinfo_reply},
7105 {SRV_NETRCHARDEVQSETINFO, "NetrCharDevQSetInfo",
7106 srvsvc_dissect_netrchardevqsetinfo_rqst,
7107 srvsvc_dissect_netrchardevqsetinfo_reply},
7108 {SRV_NETRCHARDEVQPURGE, "NetrCharDevQPurge",
7109 srvsvc_dissect_netrchardevqpurge_rqst,
7110 srvsvc_dissect_netrchardevqpurge_reply},
7111 {SRV_NETRCHARDEVQPURGESELF, "NetrCharDevQPurgeSelf",
7112 srvsvc_dissect_netrchardevqpurgeself_rqst,
7113 srvsvc_dissect_netrchardevqpurgeself_reply},
7114 {SRV_NETRCONNECTIONENUM, "NetrConnectionEnum",
7115 srvsvc_dissect_netrconnectionenum_rqst,
7116 srvsvc_dissect_netrconnectionenum_reply},
7117 {SRV_NETRFILEENUM, "NetrFileEnum",
7118 srvsvc_dissect_netrfileenum_rqst,
7119 srvsvc_dissect_netrfileenum_reply},
7120 {SRV_NETRFILEGETINFO, "NetrFileGetInfo",
7121 srvsvc_dissect_netrfilegetinfo_rqst,
7122 srvsvc_dissect_netrfilegetinfo_reply},
7123 {SRV_NETRFILECLOSE, "NetrFileClose",
7124 srvsvc_dissect_netrfileclose_rqst,
7125 srvsvc_dissect_netrfileclose_reply},
7126 {SRV_NETRSESSIONENUM, "NetrSessionEnum",
7127 srvsvc_dissect_netrsessionenum_rqst,
7128 srvsvc_dissect_netrsessionenum_reply},
7129 {SRV_NETRSESSIONDEL, "NetrSessionDel",
7130 srvsvc_dissect_netrsessiondel_rqst,
7131 srvsvc_dissect_netrsessiondel_reply},
7132 {SRV_NETRSHAREADD, "NetrShareAdd",
7133 srvsvc_dissect_netrshareadd_rqst,
7134 srvsvc_dissect_netrshareadd_reply},
7135 {SRV_NETRSHAREENUM, "NetrShareEnum",
7136 srvsvc_dissect_netrshareenum_rqst,
7137 srvsvc_dissect_netrshareenum_reply},
7138 {SRV_NETRSHAREGETINFO, "NetrShareGetInfo",
7139 srvsvc_dissect_netrsharegetinfo_rqst,
7140 srvsvc_dissect_netrsharegetinfo_reply},
7141 {SRV_NETRSHARESETINFO, "NetrShareSetInfo",
7142 srvsvc_dissect_netrsharesetinfo_rqst,
7143 srvsvc_dissect_netrsharesetinfo_reply},
7144 {SRV_NETRSHAREDEL, "NetrShareDel",
7145 srvsvc_dissect_netrsharedel_rqst,
7146 srvsvc_dissect_netrsharedel_reply},
7147 {SRV_NETRSHAREDELSTICKY, "NetrShareDelSticky",
7148 srvsvc_dissect_netrsharedelsticky_rqst,
7149 srvsvc_dissect_netrsharedelsticky_reply},
7150 {SRV_NETRSHARECHECK, "NetrShareCheck",
7151 srvsvc_dissect_netrsharecheck_rqst,
7152 srvsvc_dissect_netrsharecheck_reply},
7153 {SRV_NETRSERVERGETINFO, "NetrServerGetInfo",
7154 srvsvc_dissect_netrservergetinfo_rqst,
7155 srvsvc_dissect_netrservergetinfo_reply},
7156 {SRV_NETRSERVERSETINFO, "NetrServerSetInfo",
7157 srvsvc_dissect_netrserversetinfo_rqst,
7158 srvsvc_dissect_netrserversetinfo_reply},
7159 {SRV_NETRSERVERDISKENUM, "NetrServerDiskEnum",
7160 srvsvc_dissect_netrserverdiskenum_rqst,
7161 srvsvc_dissect_netrserverdiskenum_reply},
7162 {SRV_NETRSERVERSTATISTICSGET, "NetrServerStatisticsGet",
7163 srvsvc_dissect_netrserverstatisticsget_rqst,
7164 srvsvc_dissect_netrserverstatisticsget_reply},
7165 {SRV_NETRSERVERTRANSPORTADD, "NetrServerTransportAdd",
7166 srvsvc_dissect_netrservertransportadd_rqst,
7167 srvsvc_dissect_netrservertransportadd_reply},
7168 {SRV_NETRSERVERTRANSPORTENUM, "NetrServerTransportEnum",
7169 srvsvc_dissect_netrservertransportenum_rqst,
7170 srvsvc_dissect_netrservertransportenum_reply},
7171 {SRV_NETRSERVERTRANSPORTDEL, "NetrServerTransportDel",
7172 srvsvc_dissect_netrservertransportdel_rqst,
7173 srvsvc_dissect_netrservertransportdel_reply},
7174 {SRV_NETRREMOTETOD, "NetrRemoteTOD",
7175 srvsvc_dissect_netrremotetod_rqst,
7176 srvsvc_dissect_netrremotetod_reply},
7177 {SRV_NETRSERVERSETSERVICEBITS, "NetrServerSetServiceBits",
7178 srvsvc_dissect_netrsetserverservicebits_rqst,
7179 srvsvc_dissect_netrsetserverservicebits_reply},
7180 {SRV_NETRPRPATHTYPE, "NetrPathType",
7181 srvsvc_dissect_netrpathtype_rqst,
7182 srvsvc_dissect_netrpathtype_reply},
7183 {SRV_NETRPRPATHCANONICALIZE, "NetrpPathCanonicalize",
7184 srvsvc_dissect_netrpathcanonicalize_rqst,
7185 srvsvc_dissect_netrpathcanonicalize_reply},
7186 {SRV_NETRPRPATHCOMPARE, "NetrpPathCompare",
7187 srvsvc_dissect_netrpathcompare_rqst,
7188 srvsvc_dissect_netrpathcompare_reply},
7189 {SRV_NETRPRNAMEVALIDATE, "NetrpNameValidate",
7190 srvsvc_dissect_netrnamevalidate_rqst,
7191 srvsvc_dissect_netrnamevalidate_reply},
7192 {SRV_NETRPRNAMECANONICALIZE, "NetrpNameCanonicalize",
7193 srvsvc_dissect_netrnamecanonicalize_rqst,
7194 srvsvc_dissect_netrnamecanonicalize_reply},
7195 {SRV_NETRPRNAMECOMPARE, "NetrpNameCompare",
7196 srvsvc_dissect_netrnamecompare_rqst,
7197 srvsvc_dissect_netrnamecompare_reply},
7198 {SRV_NETRSHAREENUMSTICKY, "NetrShareEnumSticky",
7199 srvsvc_dissect_netrshareenumsticky_rqst,
7200 srvsvc_dissect_netrshareenumsticky_reply},
7201 {SRV_NETRSHAREDELSTART, "NetrShareDelStart",
7202 srvsvc_dissect_netrsharedelstart_rqst,
7203 srvsvc_dissect_netrsharedelstart_reply},
7204 {SRV_NETRSHAREDELCOMMIT, "NetrShareDelCommit",
7205 srvsvc_dissect_netrsharedelcommit_rqst,
7206 srvsvc_dissect_netrsharedelcommit_reply},
7207 {SRV_NETRPGETFILESECURITY, "NetrpGetFileSecurity",
7208 srvsvc_dissect_netrgetfilesecurity_rqst,
7209 srvsvc_dissect_netrgetfilesecurity_reply},
7210 {SRV_NETRPSETFILESECURITY, "NetrpSetFileSecurity",
7211 srvsvc_dissect_netrsetfilesecurity_rqst,
7212 srvsvc_dissect_netrsetfilesecurity_reply},
7213 {SRV_NETRSERVERTRANSPORTADDEX, "NetrServerTransportAddEx",
7214 srvsvc_dissect_netrservertransportaddex_rqst,
7215 srvsvc_dissect_netrservertransportaddex_reply},
7216 {SRV_NETRSERVERSETSERVICEBITS2, "NetrServerSetServiceBits2",
7217 srvsvc_dissect_netrserversetservicebits2_rqst,
7218 srvsvc_dissect_netrserversetservicebits2_reply},
7219 {0, NULL, NULL, NULL}
7222 static const value_string platform_id_vals[] = {
7225 { 500, "Windows NT" },
7231 static const value_string srvsvc_opnum_vals[] = {
7232 {SRV_NETRCHARDEVENUM, "NetrCharDevEnum" },
7233 {SRV_NETRCHARDEVGETINFO, "NetrCharDevGetInfo" },
7234 {SRV_NETRCHARDEVCONTROL, "NetrCharDevControl" },
7235 {SRV_NETRCHARDEVQENUM, "NetrCharDevQEnum" },
7236 {SRV_NETRCHARDEVQGETINFO, "NetrCharDevQGetInfo" },
7237 {SRV_NETRCHARDEVQSETINFO, "NetrCharDevQSetInfo" },
7238 {SRV_NETRCHARDEVQPURGE, "NetrCharDevQPurge" },
7239 {SRV_NETRCHARDEVQPURGESELF, "NetrCharDevQPurgeSelf" },
7240 {SRV_NETRCONNECTIONENUM, "NetrConnectionEnum" },
7241 {SRV_NETRFILEENUM, "NetrFileEnum" },
7242 {SRV_NETRFILEGETINFO, "NetrFileGetInfo" },
7243 {SRV_NETRFILECLOSE, "NetrFileClose" },
7244 {SRV_NETRSESSIONENUM, "NetrSessionEnum" },
7245 {SRV_NETRSESSIONDEL, "NetrSessionDel" },
7246 {SRV_NETRSHAREADD, "NetrShareAdd" },
7247 {SRV_NETRSHAREENUM, "NetrShareEnum" },
7248 {SRV_NETRSHAREGETINFO, "NetrShareGetInfo" },
7249 {SRV_NETRSHARESETINFO, "NetrShareSetInfo" },
7250 {SRV_NETRSHAREDEL, "NetrShareDel" },
7251 {SRV_NETRSHAREDELSTICKY, "NetrShareDelSticky" },
7252 {SRV_NETRSHARECHECK, "NetrShareCheck" },
7253 {SRV_NETRSERVERGETINFO, "NetrServerGetInfo" },
7254 {SRV_NETRSERVERSETINFO, "NetrServerSetInfo" },
7255 {SRV_NETRSERVERDISKENUM, "NetrServerDiskEnum" },
7256 {SRV_NETRSERVERSTATISTICSGET, "NetrServerStatisticsGet" },
7257 {SRV_NETRSERVERTRANSPORTADD, "NetrServerTransportAdd" },
7258 {SRV_NETRSERVERTRANSPORTENUM, "NetrServerTransportEnum" },
7259 {SRV_NETRSERVERTRANSPORTDEL, "NetrServerTransportDel" },
7260 {SRV_NETRREMOTETOD, "NetrRemoteTOD" },
7261 {SRV_NETRSERVERSETSERVICEBITS, "NetrServerSetServiceBits" },
7262 {SRV_NETRPRPATHTYPE, "NetrPathType" },
7263 {SRV_NETRPRPATHCANONICALIZE, "NetrpPathCanonicalize" },
7264 {SRV_NETRPRPATHCOMPARE, "NetrpPathCompare" },
7265 {SRV_NETRPRNAMEVALIDATE, "NetrpNameValidate" },
7266 {SRV_NETRPRNAMECANONICALIZE, "NetrpNameCanonicalize" },
7267 {SRV_NETRPRNAMECOMPARE, "NetrpNameCompare" },
7268 {SRV_NETRSHAREENUMSTICKY, "NetrShareEnumSticky" },
7269 {SRV_NETRSHAREDELSTART, "NetrShareDelStart" },
7270 {SRV_NETRSHAREDELCOMMIT, "NetrShareDelCommit" },
7271 {SRV_NETRPGETFILESECURITY, "NetrpGetFileSecurity" },
7272 {SRV_NETRPSETFILESECURITY, "NetrpSetFileSecurity" },
7273 {SRV_NETRSERVERTRANSPORTADDEX, "NetrServerTransportAddEx" },
7274 {SRV_NETRSERVERSETSERVICEBITS2, "NetrServerSetServiceBits2" },
7279 proto_register_dcerpc_srvsvc(void)
7281 static hf_register_info hf[] = {
7283 { "Operation", "srvsvc.opnum", FT_UINT16, BASE_DEC,
7284 VALS(srvsvc_opnum_vals), 0x0, "Operation", HFILL }},
7285 { &hf_srvsvc_server,
7286 { "Server", "srvsvc.server", FT_STRING, BASE_NONE,
7287 NULL, 0x0, "Server Name", HFILL}},
7288 { &hf_srvsvc_emulated_server,
7289 { "Emulated Server", "srvsvc.emulated_server", FT_STRING, BASE_NONE,
7290 NULL, 0x0, "Emulated Server Name", HFILL}},
7291 { &hf_srvsvc_alerts,
7292 { "Alerts", "srvsvc.alerts", FT_STRING, BASE_NONE,
7293 NULL, 0x0, "Alerts", HFILL}},
7295 { "Guest Account", "srvsvc.guest", FT_STRING, BASE_NONE,
7296 NULL, 0x0, "Guest Account", HFILL}},
7297 { &hf_srvsvc_transport,
7298 { "Transport", "srvsvc.transport", FT_STRING, BASE_NONE,
7299 NULL, 0x0, "Transport Name", HFILL}},
7300 { &hf_srvsvc_session,
7301 { "Session", "srvsvc.session", FT_STRING, BASE_NONE,
7302 NULL, 0x0, "Session Name", HFILL}},
7303 { &hf_srvsvc_qualifier,
7304 { "Qualifier", "srvsvc.qualifier", FT_STRING, BASE_NONE,
7305 NULL, 0x0, "Connection Qualifier", HFILL}},
7306 { &hf_srvsvc_computer,
7307 { "Computer", "srvsvc.computer", FT_STRING, BASE_NONE,
7308 NULL, 0x0, "Computer Name", HFILL}},
7309 { &hf_srvsvc_chrdev,
7310 { "Char Device", "srvsvc.chrdev", FT_STRING, BASE_NONE,
7311 NULL, 0x0, "Char Device Name", HFILL}},
7312 { &hf_srvsvc_chrdevq,
7313 { "Device Queue", "srvsvc.chrdevq", FT_STRING, BASE_NONE,
7314 NULL, 0x0, "Char Device Queue Name", HFILL}},
7316 { "User", "srvsvc.user", FT_STRING, BASE_NONE,
7317 NULL, 0x0, "User Name", HFILL}},
7319 { "Path", "srvsvc.path", FT_STRING, BASE_NONE,
7320 NULL, 0x0, "Path", HFILL}},
7321 { &hf_srvsvc_share_passwd,
7322 { "Share Passwd", "srvsvc.share_passwd", FT_STRING, BASE_NONE,
7323 NULL, 0x0, "Password for this share", HFILL}},
7324 { &hf_srvsvc_share_alternate_name,
7325 { "Alternate Name", "srvsvc.share_alternate_name", FT_STRING, BASE_NONE,
7326 NULL, 0x0, "Alternate name for this share", HFILL}},
7327 { &hf_srvsvc_chrdev_status,
7328 { "Status", "srvsvc.chrdev_status", FT_UINT32, BASE_HEX,
7329 NULL, 0x0, "Char Device Status", HFILL}},
7330 { &hf_srvsvc_chrqpri,
7331 { "Priority", "srvsvc.chrqdev_pri", FT_UINT32, BASE_HEX,
7332 NULL, 0x0, "Char QDevice Priority", HFILL}},
7333 { &hf_srvsvc_chrqnumusers,
7334 { "Num Users", "srvsvc.chrqdev_numusers", FT_UINT32, BASE_DEC,
7335 NULL, 0x0, "Char QDevice Number Of Users", HFILL}},
7336 { &hf_srvsvc_chrqnumahead,
7337 { "Num Ahead", "srvsvc.chrqdev_numahead", FT_UINT32, BASE_DEC,
7338 NULL, 0x0, "", HFILL}},
7339 { &hf_srvsvc_chrdev_opcode,
7340 { "Opcode", "srvsvc.chrdev_opcode", FT_UINT32, BASE_HEX,
7341 NULL, 0x0, "Opcode to apply to the Char Device", HFILL}},
7342 { &hf_srvsvc_chrdev_time,
7343 { "Time", "srvsvc.chrdev_time", FT_UINT32, BASE_DEC,
7344 NULL, 0x0, "Char Device Time?", HFILL}},
7345 { &hf_srvsvc_info_level,
7346 { "Info Level", "svrsvc.info_level", FT_UINT32,
7347 BASE_DEC, NULL, 0x0, "Info Level", HFILL}},
7349 { "Return code", "srvsvc.rc", FT_UINT32,
7350 BASE_HEX, VALS(DOS_errors), 0x0, "Return Code", HFILL}},
7352 { &hf_srvsvc_platform_id,
7353 { "Platform ID", "srvsvc.info.platform_id", FT_UINT32,
7354 BASE_DEC, VALS(platform_id_vals), 0x0, "Platform ID", HFILL}},
7355 { &hf_srvsvc_ver_major,
7356 { "Major Version", "srvsvc.version.major", FT_UINT32,
7357 BASE_DEC, NULL, 0x0, "Major Version", HFILL}},
7358 { &hf_srvsvc_ver_minor,
7359 { "Minor Version", "srvsvc.version.minor", FT_UINT32,
7360 BASE_DEC, NULL, 0x0, "Minor Version", HFILL}},
7361 /* XXX - Should break this out. We know it from browsing.
7362 See "dissect_smb_server_type_flags()"
7363 in "packet-smb-browse.c" */
7364 { &hf_srvsvc_server_type,
7365 { "Server Type", "srvsvc.server.type", FT_UINT32,
7366 BASE_HEX, NULL, 0x0, "Server Type", HFILL}},
7367 { &hf_srvsvc_client_type,
7368 { "Client Type", "srvsvc.client.type", FT_STRING,
7369 BASE_NONE, NULL, 0x0, "Client Type", HFILL}},
7370 { &hf_srvsvc_comment,
7371 { "Comment", "srvsvc.comment", FT_STRING,
7372 BASE_NONE, NULL, 0x0, "Comment", HFILL}},
7374 { "Users", "srvsvc.users", FT_UINT32,
7375 BASE_DEC, NULL, 0x0 , "User Count", HFILL}},
7377 { "Disc", "srvsvc.disc", FT_UINT32,
7378 BASE_DEC, NULL, 0x0 , "", HFILL}},
7379 { &hf_srvsvc_hidden,
7380 { "Hidden", "srvsvc.hidden", FT_UINT32,
7381 BASE_DEC, NULL, 0x0, "Hidden", HFILL}},
7382 { &hf_srvsvc_reserved,
7383 { "Reserved", "srvsvc.reserved", FT_UINT32,
7384 BASE_DEC, NULL, 0x0, "Announce", HFILL }},
7385 { &hf_srvsvc_announce,
7386 { "Announce", "srvsvc.announce", FT_UINT32,
7387 BASE_DEC, NULL, 0x0, "Announce", HFILL }},
7388 { &hf_srvsvc_anndelta,
7389 { "Announce Delta", "srvsvc.ann_delta", FT_UINT32,
7390 BASE_DEC, NULL, 0x0, "Announce Delta", HFILL}},
7391 { &hf_srvsvc_licences,
7392 { "Licences", "srvsvc.licences", FT_UINT32,
7393 BASE_DEC, NULL, 0x0, "Licences", HFILL}},
7394 { &hf_srvsvc_user_path,
7395 { "User Path", "srvsvc.user_path", FT_STRING,
7396 BASE_NONE, NULL, 0x0, "User Path", HFILL}},
7398 { "Share", "srvsvc.share", FT_STRING,
7399 BASE_NONE, NULL, 0x0, "Share", HFILL}},
7400 { &hf_srvsvc_share_type,
7401 { "Share Type", "srvsvc.share_type", FT_UINT32,
7402 BASE_HEX, VALS(share_type_vals), 0x0, "Share Type", HFILL}},
7403 { &hf_srvsvc_file_id,
7404 { "File ID", "srvsvc.file_id", FT_UINT32,
7405 BASE_DEC, NULL, 0x0, "File ID", HFILL}},
7407 { "Permissions", "srvsvc.perm", FT_UINT32,
7408 BASE_HEX, NULL, 0x0, "Permissions", HFILL}},
7409 { &hf_srvsvc_dfs_root_flags,
7410 { "DFS Root Flags", "srvsvc.dfs_root_flags", FT_UINT32,
7411 BASE_HEX, NULL, 0x0, "DFS Root Flags. Contact ethereal developers if you know what the bits are", HFILL}},
7412 { &hf_srvsvc_policy,
7413 { "Policy", "srvsvc.policy", FT_UINT32,
7414 BASE_HEX, NULL, 0x0, "Policy", HFILL}},
7415 { &hf_srvsvc_file_num_locks,
7416 { "Num Locks", "srvsvc.file_num_locks", FT_UINT32,
7417 BASE_DEC, NULL, 0x0, "Number of locks for file", HFILL}},
7418 { &hf_srvsvc_con_id,
7419 { "Connection ID", "srvsvc.con_id", FT_UINT32,
7420 BASE_DEC, NULL, 0x0, "Connection ID", HFILL}},
7421 { &hf_srvsvc_max_uses,
7422 { "Max Uses", "srvsvc.max_uses", FT_UINT32,
7423 BASE_DEC, NULL, 0x0, "Max Uses", HFILL}},
7424 { &hf_srvsvc_cur_uses,
7425 { "Current Uses", "srvsvc.cur_uses", FT_UINT32,
7426 BASE_DEC, NULL, 0x0, "Current Uses", HFILL}},
7427 { &hf_srvsvc_con_num_opens,
7428 { "Num Opens", "srvsvc.con_num_opens", FT_UINT32,
7429 BASE_DEC, NULL, 0x0, "Num Opens", HFILL}},
7430 { &hf_srvsvc_session_num_opens,
7431 { "Num Opens", "srvsvc.session.num_opens", FT_UINT32,
7432 BASE_DEC, NULL, 0x0, "Num Opens", HFILL}},
7433 { &hf_srvsvc_session_time,
7434 { "Time", "srvsvc.session.time", FT_UINT32,
7435 BASE_DEC, NULL, 0x0, "Time", HFILL}},
7436 { &hf_srvsvc_session_idle_time,
7437 { "Idle Time", "srvsvc.session.idle_time", FT_UINT32,
7438 BASE_DEC, NULL, 0x0, "Idle Time", HFILL}},
7439 { &hf_srvsvc_session_user_flags,
7440 { "User Flags", "srvsvc.session.user_flags", FT_UINT32,
7441 BASE_HEX, NULL, 0x0, "User Flags", HFILL}},
7442 { &hf_srvsvc_con_type,
7443 { "Connection Type", "srvsvc.con_type", FT_UINT32,
7444 BASE_DEC, NULL, 0x0, "Connection Type", HFILL}},
7445 { &hf_srvsvc_con_time,
7446 { "Connection Time", "srvsvc.con_time", FT_UINT32,
7447 BASE_DEC, NULL, 0x0, "Connection Time", HFILL}},
7448 { &hf_srvsvc_ulist_mtime,
7449 { "Ulist mtime", "srvsvc.ulist_mtime", FT_UINT32,
7450 BASE_DEC, NULL, 0x0, "Ulist mtime", HFILL}},
7451 { &hf_srvsvc_glist_mtime,
7452 { "Glist mtime", "srvsvc.glist_mtime", FT_UINT32,
7453 BASE_DEC, NULL, 0x0, "Glist mtime", HFILL}},
7454 { &hf_srvsvc_alist_mtime,
7455 { "Alist mtime", "srvsvc.alist_mtime", FT_UINT32,
7456 BASE_DEC, NULL, 0x0, "Alist mtime", HFILL}},
7457 { &hf_srvsvc_connections,
7458 { "Connections", "srvsvc.connections", FT_UINT32,
7459 BASE_DEC, NULL, 0x0, "Number of Connections", HFILL}},
7460 { &hf_srvsvc_shares,
7461 { "Shares", "srvsvc.shares", FT_UINT32,
7462 BASE_DEC, NULL, 0x0, "Number of Shares", HFILL}},
7463 { &hf_srvsvc_diskalert,
7464 { "Disk Alerts", "srvsvc.diskalert", FT_UINT32,
7465 BASE_DEC, NULL, 0x0, "Number of disk alerts", HFILL}},
7466 { &hf_srvsvc_netioalert,
7467 { "Net I/O Alerts", "srvsvc.netioalert", FT_UINT32,
7468 BASE_DEC, NULL, 0x0, "Number of Net I/O Alerts", HFILL}},
7469 { &hf_srvsvc_maxauditsz,
7470 { "Max Audits", "srvsvc.maxaudits", FT_UINT32,
7471 BASE_DEC, NULL, 0x0, "Maximum number of audits", HFILL}},
7472 { &hf_srvsvc_srvheuristics,
7473 { "Server Heuristics", "srvsvc.srvheuristics", FT_STRING,
7474 BASE_DEC, NULL, 0x0, "Server Heuristics", HFILL}},
7475 { &hf_srvsvc_openfiles,
7476 { "Open Files", "srvsvc.openfiles", FT_UINT32,
7477 BASE_DEC, NULL, 0x0, "Open Files", HFILL}},
7478 { &hf_srvsvc_opensearch,
7479 { "Open Search", "srvsvc.opensearch", FT_UINT32,
7480 BASE_DEC, NULL, 0x0, "Open Search", HFILL}},
7481 { &hf_srvsvc_activelocks,
7482 { "Active Locks", "srvsvc.activelocks", FT_UINT32,
7483 BASE_DEC, NULL, 0x0, "Active Locks", HFILL}},
7484 { &hf_srvsvc_numfiletasks,
7485 { "Num Filetasks", "srvsvc.numfiletasks", FT_UINT32,
7486 BASE_DEC, NULL, 0x0, "Number of filetasks", HFILL}},
7487 { &hf_srvsvc_alertsched,
7488 { "Alert Sched", "srvsvc.alertsched", FT_UINT32,
7489 BASE_DEC, NULL, 0x0, "Alert Schedule", HFILL}},
7490 { &hf_srvsvc_erroralert,
7491 { "Error Alerts", "srvsvc.erroralert", FT_UINT32,
7492 BASE_DEC, NULL, 0x0, "Number of error alerts", HFILL}},
7493 { &hf_srvsvc_logonalert,
7494 { "Logon Alerts", "srvsvc.logonalert", FT_UINT32,
7495 BASE_DEC, NULL, 0x0, "Number of logon alerts", HFILL}},
7496 { &hf_srvsvc_accessalert,
7497 { "Access Alerts", "srvsvc.accessalert", FT_UINT32,
7498 BASE_DEC, NULL, 0x0, "Number of access alerts", HFILL}},
7499 { &hf_srvsvc_sizreqbufs,
7500 { "Siz Req Bufs", "srvsvc.sizreqbufs", FT_UINT32,
7501 BASE_DEC, NULL, 0x0, "", HFILL}},
7502 { &hf_srvsvc_numbigbufs,
7503 { "Num Big Bufs", "srvsvc.numbigbufs", FT_UINT32,
7504 BASE_DEC, NULL, 0x0, "Number of big buffers", HFILL}},
7505 { &hf_srvsvc_sessopens,
7506 { "Sessions Open", "srvsvc.sessopens", FT_UINT32,
7507 BASE_DEC, NULL, 0x0, "Sessions Open", HFILL}},
7508 { &hf_srvsvc_sessvcs,
7509 { "Sessions VCs", "srvsvc.sessvcs", FT_UINT32,
7510 BASE_DEC, NULL, 0x0, "Sessions VCs", HFILL}},
7511 { &hf_srvsvc_sessreqs,
7512 { "Sessions Reqs", "srvsvc.sessreqs", FT_UINT32,
7513 BASE_DEC, NULL, 0x0, "Sessions Requests", HFILL}},
7514 { &hf_srvsvc_auditedevents,
7515 { "Audited Events", "srvsvc.auditedevents", FT_UINT32,
7516 BASE_DEC, NULL, 0x0, "Number of audited events", HFILL}},
7517 { &hf_srvsvc_auditprofile,
7518 { "Audit Profile", "srvsvc.auditprofile", FT_UINT32,
7519 BASE_HEX, NULL, 0x0, "Audit Profile", HFILL}},
7520 { &hf_srvsvc_autopath,
7521 { "Autopath", "srvsvc.autopath", FT_STRING,
7522 BASE_DEC, NULL, 0x0, "Autopath", HFILL}},
7523 { &hf_srvsvc_security,
7524 { "Security", "srvsvc.security", FT_UINT32,
7525 BASE_HEX, NULL, 0x0, "Security", HFILL}},
7526 { &hf_srvsvc_numadmin,
7527 { "Num Admins", "srvsvc.num_admins", FT_UINT32,
7528 BASE_DEC, NULL, 0x0, "Number of Administrators", HFILL}},
7529 { &hf_srvsvc_lanmask,
7530 { "LANMask", "srvsvc.lanmask", FT_UINT32,
7531 BASE_HEX, NULL, 0x0, "LANMask", HFILL}},
7532 { &hf_srvsvc_chdevs,
7533 { "Char Devs", "srvsvc.chdevs", FT_UINT32,
7534 BASE_DEC, NULL, 0x0, "Number of Char Devices", HFILL}},
7535 { &hf_srvsvc_chdevqs,
7536 { "Char Devqs", "srvsvc.chdevqs", FT_UINT32,
7537 BASE_DEC, NULL, 0x0, "Number of Char Device Queues", HFILL}},
7538 { &hf_srvsvc_chdevjobs,
7539 { "Char Dev Jobs", "srvsvc.chdevjobs", FT_UINT32,
7540 BASE_DEC, NULL, 0x0, "Number of Char Device Jobs", HFILL}},
7541 { &hf_srvsvc_num_entries,
7542 { "Number of entries", "srvsvc.share.num_entries", FT_UINT32,
7543 BASE_DEC, NULL, 0x0, "Number of Entries", HFILL}},
7544 { &hf_srvsvc_initworkitems,
7545 { "Init Workitems", "srvsvc.initworkitems", FT_UINT32,
7546 BASE_DEC, NULL, 0x0, "Workitems", HFILL}},
7547 { &hf_srvsvc_maxworkitems,
7548 { "Max Workitems", "srvsvc.maxworkitems", FT_UINT32,
7549 BASE_DEC, NULL, 0x0, "Workitems", HFILL}},
7550 { &hf_srvsvc_rawworkitems,
7551 { "Raw Workitems", "srvsvc.rawworkitems", FT_UINT32,
7552 BASE_DEC, NULL, 0x0, "Workitems", HFILL}},
7553 { &hf_srvsvc_preferred_len,
7554 { "Preferred length", "srvsvc.preferred_len", FT_UINT32,
7555 BASE_DEC, NULL, 0x0, "Preferred Length", HFILL}},
7556 { &hf_srvsvc_parm_error,
7557 { "Parameter Error", "srvsvc.parm_error", FT_UINT32,
7558 BASE_DEC, NULL, 0x0, "Parameter Error", HFILL}},
7559 { &hf_srvsvc_enum_handle,
7560 { "Enumeration handle", "srvsvc.enum_hnd", FT_BYTES,
7561 BASE_HEX, NULL, 0x0, "Enumeration Handle", HFILL}},
7562 { &hf_srvsvc_irpstacksize,
7563 { "Irp Stack Size", "srvsvc.irpstacksize", FT_UINT32,
7564 BASE_HEX, NULL, 0x0, "Irp Stack Size", HFILL}},
7565 { &hf_srvsvc_maxrawbuflen,
7566 { "Max Raw Buf Len", "srvsvc.", FT_UINT32,
7567 BASE_HEX, NULL, 0x0, "Max Raw Buf Len", HFILL}},
7568 { &hf_srvsvc_maxpagedmemoryusage,
7569 { "Max Paged Memory Usage", "srvsvc.maxpagedmemoryusage", FT_UINT32,
7570 BASE_HEX, NULL, 0x0, "Max Paged Memory Usage", HFILL}},
7571 { &hf_srvsvc_maxnonpagedmemoryusage,
7572 { "Max Non-Paged Memory Usage", "srvsvc.maxnonpagedmemoryusage", FT_UINT32,
7573 BASE_HEX, NULL, 0x0, "Max Non-Paged Memory Usage", HFILL}},
7574 { &hf_srvsvc_enablesoftcompat,
7575 { "Enable Soft Compat", "srvsvc.enablesoftcompat", FT_UINT32,
7576 BASE_HEX, NULL, 0x0, "Enable Soft Compat", HFILL}},
7577 { &hf_srvsvc_enableforcedlogoff,
7578 { "Enable Forced Logoff", "srvsvc.enableforcedlogoff", FT_UINT32,
7579 BASE_HEX, NULL, 0x0, "Enable Forced Logoff", HFILL}},
7580 { &hf_srvsvc_timesource,
7581 { "Timesource", "srvsvc.timesource", FT_UINT32,
7582 BASE_HEX, NULL, 0x0, "Timesource", HFILL}},
7583 { &hf_srvsvc_acceptdownlevelapis,
7584 { "Accept Downlevel APIs", "srvsvc.acceptdownlevelapis", FT_UINT32,
7585 BASE_HEX, NULL, 0x0, "Accept Downlevel APIs", HFILL}},
7586 { &hf_srvsvc_lmannounce,
7587 { "LM Announce", "srvsvc.lmannounce", FT_UINT32,
7588 BASE_HEX, NULL, 0x0, "LM Announce", HFILL}},
7589 { &hf_srvsvc_domain,
7590 { "Domain", "srvsvc.domain", FT_STRING,
7591 BASE_HEX, NULL, 0x0, "Domain", HFILL}},
7592 { &hf_srvsvc_maxcopyreadlen,
7593 { "Max Copy Read Len", "srvsvc.maxcopyreadlen", FT_UINT32,
7594 BASE_DEC, NULL, 0x0, "Max Copy Read Len", HFILL}},
7595 { &hf_srvsvc_maxcopywritelen,
7596 { "Max Copy Write Len", "srvsvc.maxcopywritelen", FT_UINT32,
7597 BASE_DEC, NULL, 0x0, "Max Copy Write Len", HFILL}},
7598 { &hf_srvsvc_minkeepsearch,
7599 { "Min Keep Search", "srvsvc.minkeepsearch", FT_UINT32,
7600 BASE_DEC, NULL, 0x0, "Min Keep Search", HFILL}},
7601 { &hf_srvsvc_maxkeepsearch,
7602 { "Max Keep Search", "srvsvc.maxkeepsearch", FT_UINT32,
7603 BASE_DEC, NULL, 0x0, "Max Keep Search", HFILL}},
7604 { &hf_srvsvc_minkeepcomplsearch,
7605 { "Min Keep Compl Search", "srvsvc.minkeepcomplsearch", FT_UINT32,
7606 BASE_DEC, NULL, 0x0, "Min Keep Compl Search", HFILL}},
7607 { &hf_srvsvc_maxkeepcomplsearch,
7608 { "Max Keep Compl Search", "srvsvc.maxkeepcomplsearch", FT_UINT32,
7609 BASE_DEC, NULL, 0x0, "Max Keep Compl Search", HFILL}},
7610 { &hf_srvsvc_threadcountadd,
7611 { "Thread Count Add", "srvsvc.threadcountadd", FT_UINT32,
7612 BASE_DEC, NULL, 0x0, "Thread Count Add", HFILL}},
7613 { &hf_srvsvc_numblockthreads,
7614 { "Num Block Threads", "srvsvc.numblockthreads", FT_UINT32,
7615 BASE_DEC, NULL, 0x0, "Num Block Threads", HFILL}},
7616 { &hf_srvsvc_scavtimeout,
7617 { "Scav Timeout", "srvsvc.scavtimeout", FT_UINT32,
7618 BASE_DEC, NULL, 0x0, "Scav Timeout", HFILL}},
7619 { &hf_srvsvc_minrcvqueue,
7620 { "Min Rcv Queue", "srvsvc.minrcvqueue", FT_UINT32,
7621 BASE_DEC, NULL, 0x0, "Min Rcv Queue", HFILL}},
7622 { &hf_srvsvc_minfreeworkitems,
7623 { "Min Free Workitems", "srvsvc.minfreeworkitems", FT_UINT32,
7624 BASE_DEC, NULL, 0x0, "Min Free Workitems", HFILL}},
7625 { &hf_srvsvc_xactmemsize,
7626 { "Xact Mem Size", "srvsvc.xactmemsize", FT_UINT32,
7627 BASE_DEC, NULL, 0x0, "Xact Mem Size", HFILL}},
7628 { &hf_srvsvc_threadpriority,
7629 { "Thread Priority", "srvsvc.threadpriority", FT_UINT32,
7630 BASE_DEC, NULL, 0x0, "Thread Priority", HFILL}},
7631 { &hf_srvsvc_maxmpxct,
7632 { "MaxMpxCt", "srvsvc.maxmpxct", FT_UINT32,
7633 BASE_DEC, NULL, 0x0, "MaxMpxCt", HFILL}},
7634 { &hf_srvsvc_oplockbreakwait,
7635 { "Oplock Break Wait", "srvsvc.oplockbreakwait", FT_UINT32,
7636 BASE_DEC, NULL, 0x0, "Oplock Break Wait", HFILL}},
7637 { &hf_srvsvc_oplockbreakresponsewait,
7638 { "Oplock Break Response wait", "srvsvc.oplockbreakresponsewait", FT_UINT32,
7639 BASE_DEC, NULL, 0x0, "Oplock Break response Wait", HFILL}},
7640 { &hf_srvsvc_enableoplocks,
7641 { "Enable Oplocks", "srvsvc.enableoplocks", FT_UINT32,
7642 BASE_DEC, NULL, 0x0, "Enable Oplocks", HFILL}},
7643 { &hf_srvsvc_enableoplockforceclose,
7644 { "Enable Oplock Force Close", "srvsvc.enableoplockforceclose", FT_UINT32,
7645 BASE_DEC, NULL, 0x0, "Enable Oplock Force Close", HFILL}},
7646 { &hf_srvsvc_enablefcbopens,
7647 { "Enable FCB Opens", "srvsvc.enablefcbopens", FT_UINT32,
7648 BASE_DEC, NULL, 0x0, "Enable FCB Opens", HFILL}},
7649 { &hf_srvsvc_enableraw,
7650 { "Enable RAW", "srvsvc.enableraw", FT_UINT32,
7651 BASE_DEC, NULL, 0x0, "Enable RAW", HFILL}},
7652 { &hf_srvsvc_enablesharednetdrives,
7653 { "Enable Shared Net Drives", "srvsvc.enablesharednetdrives", FT_UINT32,
7654 BASE_DEC, NULL, 0x0, "Enable Shared Net Drives", HFILL}},
7655 { &hf_srvsvc_minfreeconnections,
7656 { "Min Free Conenctions", "srvsvc.minfreeconnections", FT_UINT32,
7657 BASE_DEC, NULL, 0x0, "Min Free Connections", HFILL}},
7658 { &hf_srvsvc_maxfreeconnections,
7659 { "Max Free Conenctions", "srvsvc.maxfreeconnections", FT_UINT32,
7660 BASE_DEC, NULL, 0x0, "Max Free Connections", HFILL}},
7661 { &hf_srvsvc_initsesstable,
7662 { "Init Session Table", "srvsvc.initsesstable", FT_UINT32,
7663 BASE_DEC, NULL, 0x0, "Init Session Table", HFILL}},
7664 { &hf_srvsvc_initconntable,
7665 { "Init Connection Table", "srvsvc.initconntable", FT_UINT32,
7666 BASE_DEC, NULL, 0x0, "Init Connection Table", HFILL}},
7667 { &hf_srvsvc_initfiletable,
7668 { "Init File Table", "srvsvc.initfiletable", FT_UINT32,
7669 BASE_DEC, NULL, 0x0, "Init File Table", HFILL}},
7670 { &hf_srvsvc_initsearchtable,
7671 { "Init Search Table", "srvsvc.initsearchtable", FT_UINT32,
7672 BASE_DEC, NULL, 0x0, "Init Search Table", HFILL}},
7673 { &hf_srvsvc_errortreshold,
7674 { "Error Treshold", "srvsvc.errortreshold", FT_UINT32,
7675 BASE_DEC, NULL, 0x0, "Error Treshold", HFILL}},
7676 { &hf_srvsvc_networkerrortreshold,
7677 { "Network Error Treshold", "srvsvc.networkerrortreshold", FT_UINT32,
7678 BASE_DEC, NULL, 0x0, "Network Error Treshold", HFILL}},
7679 { &hf_srvsvc_diskspacetreshold,
7680 { "Diskspace Treshold", "srvsvc.diskspacetreshold", FT_UINT32,
7681 BASE_DEC, NULL, 0x0, "Diskspace Treshold", HFILL}},
7682 { &hf_srvsvc_maxlinkdelay,
7683 { "Max Link Delay", "srvsvc.maxlinkdelay", FT_UINT32,
7684 BASE_DEC, NULL, 0x0, "Max Link Delay", HFILL}},
7685 { &hf_srvsvc_minlinkthroughput,
7686 { "Min Link Throughput", "srvsvc.minlinkthroughput", FT_UINT32,
7687 BASE_DEC, NULL, 0x0, "Min Link Throughput", HFILL}},
7688 { &hf_srvsvc_linkinfovalidtime,
7689 { "Link Info Valid Time", "srvsvc.linkinfovalidtime", FT_UINT32,
7690 BASE_DEC, NULL, 0x0, "Link Info Valid Time", HFILL}},
7691 { &hf_srvsvc_scavqosinfoupdatetime,
7692 { "Scav QoS Info Update Time", "srvsvc.scavqosinfoupdatetime", FT_UINT32,
7693 BASE_DEC, NULL, 0x0, "Scav QoS Info Update Time", HFILL}},
7694 { &hf_srvsvc_maxworkitemidletime,
7695 { "Max Workitem Idle Time", "srvsvc.maxworkitemidletime", FT_UINT32,
7696 BASE_DEC, NULL, 0x0, "Max Workitem Idle Time", HFILL}},
7697 { &hf_srvsvc_disk_name,
7698 { "Disk Name", "srvsvc.disk_name", FT_STRING,
7699 BASE_DEC, NULL, 0x0, "Disk Name", HFILL}},
7700 { &hf_srvsvc_disk_name_len,
7701 { "Disk Name Length", "srvsvc.disk_name_len", FT_UINT32,
7702 BASE_DEC, NULL, 0x0, "Length of Disk Name", HFILL}},
7703 { &hf_srvsvc_service,
7704 { "Service", "srvsvc.service", FT_STRING,
7705 BASE_DEC, NULL, 0x0, "Service", HFILL}},
7706 { &hf_srvsvc_service_options,
7707 { "Options", "srvsvc.service_options", FT_UINT32,
7708 BASE_HEX, NULL, 0x0, "Service Options", HFILL}},
7709 { &hf_srvsvc_transport_numberofvcs,
7710 { "VCs", "srvsvc.transport.num_vcs", FT_UINT32,
7711 BASE_DEC, NULL, 0x0, "Number of VCs for this transport", HFILL}},
7712 { &hf_srvsvc_transport_name,
7713 { "Name", "srvsvc.transport.name", FT_STRING,
7714 BASE_HEX, NULL, 0x0, "Name of transport", HFILL}},
7715 { &hf_srvsvc_transport_address,
7716 { "Address", "srvsvc.transport.address", FT_BYTES,
7717 BASE_HEX, NULL, 0x0, "Address of transport", HFILL}},
7718 { &hf_srvsvc_transport_address_len,
7719 { "Address Len", "srvsvc.transport.addresslen", FT_UINT32,
7720 BASE_DEC, NULL, 0x0, "Length of transport address", HFILL}},
7721 { &hf_srvsvc_transport_networkaddress,
7722 { "Network Address", "srvsvc.transport.networkaddress", FT_STRING,
7723 BASE_HEX, NULL, 0x0, "Network address for transport", HFILL}},
7724 { &hf_srvsvc_service_bits,
7725 { "Service Bits", "srvsvc.service_bits", FT_UINT32,
7726 BASE_HEX, NULL, 0x0, "Service Bits", HFILL}},
7727 { &hf_srvsvc_service_bits_of_interest,
7728 { "Service Bits Of Interest", "srvsvc.service_bits_of_interest", FT_UINT32,
7729 BASE_HEX, NULL, 0x0, "Service Bits Of Interest", HFILL}},
7730 { &hf_srvsvc_update_immediately,
7731 { "Update Immediately", "srvsvc.update_immediately", FT_UINT32,
7732 BASE_DEC, NULL, 0x0, "Update Immediately", HFILL}},
7733 { &hf_srvsvc_path_flags,
7734 { "Flags", "srvsvc.path_flags", FT_UINT32,
7735 BASE_HEX, NULL, 0x0, "Path flags", HFILL}},
7736 { &hf_srvsvc_share_flags,
7737 { "Flags", "srvsvc.share_flags", FT_UINT32,
7738 BASE_HEX, NULL, 0x0, "Share flags", HFILL}},
7739 { &hf_srvsvc_path_type,
7740 { "Type", "srvsvc.path_type", FT_UINT32,
7741 BASE_DEC, NULL, 0x0, "Path type", HFILL}},
7742 { &hf_srvsvc_path_len,
7743 { "Len", "srvsvc.path_len", FT_UINT32,
7744 BASE_DEC, NULL, 0x0, "Path len", HFILL}},
7745 { &hf_srvsvc_outbuflen,
7746 { "OutBufLen", "srvsvc.outbuflen", FT_UINT32,
7747 BASE_DEC, NULL, 0x0, "Output Buffer Length", HFILL}},
7748 { &hf_srvsvc_prefix,
7749 { "Prefix", "srvsvc.prefix", FT_STRING,
7750 BASE_HEX, NULL, 0x0, "Path Prefix", HFILL}},
7752 { "Context Handle", "srvsvc.hnd", FT_BYTES,
7753 BASE_NONE, NULL, 0x0, "Context Handle", HFILL}},
7754 { &hf_srvsvc_server_stat_start,
7755 { "Start", "srvsvc.server_stat.start", FT_UINT32,
7756 BASE_DEC, NULL, 0x0, "", HFILL}},
7757 { &hf_srvsvc_server_stat_fopens,
7758 { "Fopens", "srvsvc.server_stat.fopens", FT_UINT32,
7759 BASE_DEC, NULL, 0x0, "Number of fopens", HFILL}},
7760 { &hf_srvsvc_server_stat_devopens,
7761 { "Devopens", "srvsvc.server_stat.devopens", FT_UINT32,
7762 BASE_DEC, NULL, 0x0, "Number of devopens", HFILL}},
7763 { &hf_srvsvc_server_stat_jobsqueued,
7764 { "Jobs Queued", "srvsvc.server_stat.jobsqueued", FT_UINT32,
7765 BASE_DEC, NULL, 0x0, "Number of jobs queued", HFILL}},
7766 { &hf_srvsvc_server_stat_sopens,
7767 { "Sopens", "srvsvc.server_stat.sopens", FT_UINT32,
7768 BASE_DEC, NULL, 0x0, "Number of sopens", HFILL}},
7769 { &hf_srvsvc_server_stat_stimeouts,
7770 { "stimeouts", "srvsvc.server_stat.stimeouts", FT_UINT32,
7771 BASE_DEC, NULL, 0x0, "Number of stimeouts", HFILL}},
7772 { &hf_srvsvc_server_stat_serrorout,
7773 { "Serrorout", "srvsvc.server_stat.serrorout", FT_UINT32,
7774 BASE_DEC, NULL, 0x0, "Number of serrorout", HFILL}},
7775 { &hf_srvsvc_server_stat_pwerrors,
7776 { "Pwerrors", "srvsvc.server_stat.pwerrors", FT_UINT32,
7777 BASE_DEC, NULL, 0x0, "Number of password errors", HFILL}},
7778 { &hf_srvsvc_server_stat_permerrors,
7779 { "Permerrors", "srvsvc.server_stat.permerrors", FT_UINT32,
7780 BASE_DEC, NULL, 0x0, "Number of permission errors", HFILL}},
7781 { &hf_srvsvc_server_stat_syserrors,
7782 { "Syserrors", "srvsvc.server_stat.syserrors", FT_UINT32,
7783 BASE_DEC, NULL, 0x0, "Number of system errors", HFILL}},
7784 { &hf_srvsvc_server_stat_bytessent,
7785 { "Bytes Sent", "srvsvc.server_stat.bytessent", FT_UINT64,
7786 BASE_DEC, NULL, 0x0, "Number of bytes sent", HFILL}},
7787 { &hf_srvsvc_server_stat_bytesrcvd,
7788 { "Bytes Rcvd", "srvsvc.server_stat.bytesrcvd", FT_UINT64,
7789 BASE_DEC, NULL, 0x0, "Number of bytes received", HFILL}},
7790 { &hf_srvsvc_server_stat_avresponse,
7791 { "Avresponse", "srvsvc.server_stat.avresponse", FT_UINT32,
7792 BASE_DEC, NULL, 0x0, "", HFILL}},
7793 { &hf_srvsvc_server_stat_reqbufneed,
7794 { "Req Buf Need", "srvsvc.server_stat.reqbufneed", FT_UINT32,
7795 BASE_DEC, NULL, 0x0, "Number of request buffers needed?", HFILL}},
7796 { &hf_srvsvc_server_stat_bigbufneed,
7797 { "Big Buf Need", "srvsvc.server_stat.bigbufneed", FT_UINT32,
7798 BASE_DEC, NULL, 0x0, "Number of big buffers needed?", HFILL}},
7799 { &hf_srvsvc_tod_elapsed,
7800 { "Elapsed", "srvsvc.tod.elapsed", FT_UINT32,
7801 BASE_DEC, NULL, 0x0, "", HFILL}},
7802 { &hf_srvsvc_tod_msecs,
7803 { "msecs", "srvsvc.tod.msecs", FT_UINT32,
7804 BASE_DEC, NULL, 0x0, "", HFILL}},
7805 { &hf_srvsvc_tod_hours,
7806 { "Hours", "srvsvc.tod.hours", FT_UINT32,
7807 BASE_DEC, NULL, 0x0, "", HFILL}},
7808 { &hf_srvsvc_tod_mins,
7809 { "Mins", "srvsvc.tod.mins", FT_UINT32,
7810 BASE_DEC, NULL, 0x0, "", HFILL}},
7811 { &hf_srvsvc_tod_secs,
7812 { "Secs", "srvsvc.tod.secs", FT_UINT32,
7813 BASE_DEC, NULL, 0x0, "", HFILL}},
7814 { &hf_srvsvc_tod_hunds,
7815 { "Hunds", "srvsvc.tod.hunds", FT_UINT32,
7816 BASE_DEC, NULL, 0x0, "", HFILL}},
7817 { &hf_srvsvc_tod_timezone,
7818 { "Timezone", "srvsvc.tod.timezone", FT_UINT32,
7819 BASE_DEC, NULL, 0x0, "", HFILL}},
7820 { &hf_srvsvc_tod_tinterval,
7821 { "Tinterval", "srvsvc.tod.tinterval", FT_UINT32,
7822 BASE_DEC, NULL, 0x0, "", HFILL}},
7823 { &hf_srvsvc_tod_day,
7824 { "Day", "srvsvc.tod.day", FT_UINT32,
7825 BASE_DEC, NULL, 0x0, "", HFILL}},
7826 { &hf_srvsvc_tod_month,
7827 { "Month", "srvsvc.tod.month", FT_UINT32,
7828 BASE_DEC, NULL, 0x0, "", HFILL}},
7829 { &hf_srvsvc_tod_year,
7830 { "Year", "srvsvc.tod.year", FT_UINT32,
7831 BASE_DEC, NULL, 0x0, "", HFILL}},
7832 { &hf_srvsvc_tod_weekday,
7833 { "Weekday", "srvsvc.tod.weekday", FT_UINT32,
7834 BASE_DEC, NULL, 0x0, "", HFILL}},
7837 static gint *ett[] = {
7839 &ett_srvsvc_share_info_1,
7840 &ett_srvsvc_share_info_2,
7841 &ett_srvsvc_share_info_501,
7842 &ett_srvsvc_share_info_502
7845 proto_dcerpc_srvsvc = proto_register_protocol(
7846 "Microsoft Server Service", "SRVSVC", "srvsvc");
7848 proto_register_field_array(proto_dcerpc_srvsvc, hf, array_length(hf));
7849 proto_register_subtree_array(ett, array_length(ett));
7853 proto_reg_handoff_dcerpc_srvsvc(void)
7855 /* Register protocol as dcerpc */
7857 dcerpc_init_uuid(proto_dcerpc_srvsvc, ett_dcerpc_srvsvc,
7858 &uuid_dcerpc_srvsvc, ver_dcerpc_srvsvc,
7859 dcerpc_srvsvc_dissectors, hf_srvsvc_opnum);