1 /* packet-dcerpc-srvsvc.c
2 * Routines for SMB \\PIPE\\srvsvc packet disassembly
3 * Copyright 2001, Tim Potter <tpot@samba.org>
4 * Copyright 2002, Richard Sharpe <rsharpe@ns.aus.com>
5 * decode srvsvc calls where Samba knows them ...
7 * $Id: packet-dcerpc-srvsvc.c,v 1.30 2002/06/21 10:58:48 sahlberg Exp $
9 * Ethereal - Network traffic analyzer
10 * By Gerald Combs <gerald@ethereal.com>
11 * Copyright 1998 Gerald Combs
13 * This program is free software; you can redistribute it and/or
14 * modify it under the terms of the GNU General Public License
15 * as published by the Free Software Foundation; either version 2
16 * of the License, or (at your option) any later version.
18 * This program is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU General Public License for more details.
23 * You should have received a copy of the GNU General Public License
24 * along with this program; if not, write to the Free Software
25 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
34 #include <epan/packet.h>
35 #include "packet-dcerpc.h"
36 #include "packet-dcerpc-srvsvc.h"
37 #include "packet-dcerpc-lsa.h"
38 #include "packet-dcerpc-nt.h"
39 #include "packet-smb-common.h"
43 * Some private space for srvsvc
45 typedef struct _srvsvc_info {
51 static int proto_dcerpc_srvsvc = -1;
52 static int hf_srvsvc_reserved = -1;
53 static int hf_srvsvc_server = -1;
54 static int hf_srvsvc_alerts = -1;
55 static int hf_srvsvc_guest = -1;
56 static int hf_srvsvc_transport = -1;
57 static int hf_srvsvc_session = -1;
58 static int hf_srvsvc_session_num_opens = -1;
59 static int hf_srvsvc_session_time = -1;
60 static int hf_srvsvc_session_idle_time = -1;
61 static int hf_srvsvc_session_user_flags = -1;
62 static int hf_srvsvc_qualifier = -1;
63 static int hf_srvsvc_computer = -1;
64 static int hf_srvsvc_user = -1;
65 static int hf_srvsvc_path = -1;
66 static int hf_srvsvc_share_passwd = -1;
67 static int hf_srvsvc_file_id = -1;
68 static int hf_srvsvc_perm = -1;
69 static int hf_srvsvc_file_num_locks = -1;
70 static int hf_srvsvc_con_id = -1;
71 static int hf_srvsvc_max_uses = -1;
72 static int hf_srvsvc_cur_uses = -1;
73 static int hf_srvsvc_con_time = -1;
74 static int hf_srvsvc_con_type = -1;
75 static int hf_srvsvc_con_num_opens = -1;
76 static int hf_srvsvc_chrqpri = -1;
77 static int hf_srvsvc_chrqnumusers = -1;
78 static int hf_srvsvc_chrqnumahead = -1;
79 static int hf_srvsvc_chrdev = -1;
80 static int hf_srvsvc_chrdevq = -1;
81 static int hf_srvsvc_chrdev_time = -1;
82 static int hf_srvsvc_chrdev_status = -1;
83 static int hf_srvsvc_chrdev_opcode = -1;
84 static int hf_srvsvc_info_level = -1;
85 static int hf_srvsvc_info = -1;
86 static int hf_srvsvc_rc = -1;
87 static int hf_srvsvc_platform_id = -1;
88 static int hf_srvsvc_ver_major = -1;
89 static int hf_srvsvc_ver_minor = -1;
90 static int hf_srvsvc_server_type = -1;
91 static int hf_srvsvc_client_type = -1;
92 static int hf_srvsvc_comment = -1;
93 static int hf_srvsvc_users = -1;
94 static int hf_srvsvc_disc = -1;
95 static int hf_srvsvc_hidden = -1;
96 static int hf_srvsvc_announce = -1;
97 static int hf_srvsvc_anndelta = -1;
98 static int hf_srvsvc_licences = -1;
99 static int hf_srvsvc_user_path = -1;
100 static int hf_srvsvc_share = -1;
101 static int hf_srvsvc_share_info = -1;
102 static int hf_srvsvc_share_type = -1;
103 static int hf_srvsvc_switch_value = -1;
104 static int hf_srvsvc_num_entries = -1;
105 static int hf_srvsvc_num_pointers = -1;
106 static int hf_srvsvc_preferred_len = -1;
107 static int hf_srvsvc_parm_error = -1;
108 static int hf_srvsvc_enum_handle = -1;
109 static int hf_srvsvc_ulist_mtime = -1;
110 static int hf_srvsvc_glist_mtime = -1;
111 static int hf_srvsvc_alist_mtime = -1;
112 static int hf_srvsvc_security = -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;
198 static int hf_srvsvc_unknown_long = -1;
199 static int hf_srvsvc_unknown_bytes = -1;
200 static int hf_srvsvc_unknown_string = -1;
202 static gint ett_dcerpc_srvsvc = -1;
203 static gint ett_srvsvc_server_info = -1;
204 static gint ett_srvsvc_share_info = -1;
205 static gint ett_srvsvc_share_info_1 = -1;
206 static gint ett_srvsvc_share_info_2 = -1;
207 static gint ett_srvsvc_share_info_502 = -1;
211 static e_uuid_t uuid_dcerpc_srvsvc = {
212 0x4b324fc8, 0x1670, 0x01d3,
213 { 0x12, 0x78, 0x5a, 0x47, 0xbf, 0x6e, 0xe1, 0x88 }
216 static guint16 ver_dcerpc_srvsvc = 3;
219 srvsvc_dissect_pointer_long(tvbuff_t *tvb, int offset,
220 packet_info *pinfo, proto_tree *tree,
225 di=pinfo->private_data;
226 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
232 srvsvc_dissect_ENUM_HANDLE(tvbuff_t *tvb, int offset,
233 packet_info *pinfo, proto_tree *tree,
237 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
238 hf_srvsvc_enum_handle, 0);
244 srvsvc_dissect_pointer_UNICODE_STRING(tvbuff_t *tvb, int offset,
245 packet_info *pinfo, proto_tree *tree,
250 di=pinfo->private_data;
251 if(di->conformant_run){
252 /*just a run to handle conformant arrays, nothing to dissect */
256 offset = dissect_ndr_nt_UNICODE_STRING_str(tvb, offset, pinfo, tree,
266 * IDL typedef struct {
267 * IDL [string] [unique] wchar_t *dev;
268 * IDL } CHARDEV_INFO_0;
271 srvsvc_dissect_CHARDEV_INFO_0(tvbuff_t *tvb, int offset,
272 packet_info *pinfo, proto_tree *tree,
275 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
276 srvsvc_dissect_pointer_UNICODE_STRING,
277 NDR_POINTER_UNIQUE, "Char Device",
278 hf_srvsvc_chrdev, 0);
283 srvsvc_dissect_CHARDEV_INFO_0_array(tvbuff_t *tvb, int offset,
284 packet_info *pinfo, proto_tree *tree,
287 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
288 srvsvc_dissect_CHARDEV_INFO_0);
294 * IDL typedef struct {
295 * IDL long EntriesRead;
296 * IDL [size_is(EntriesRead)] [unique] CHARDEV_INFO_0 *devs;
297 * IDL } CHARDEV_INFO_0_CONTAINER;
300 srvsvc_dissect_CHARDEV_INFO_0_CONTAINER(tvbuff_t *tvb, int offset,
301 packet_info *pinfo, proto_tree *tree,
304 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
305 hf_srvsvc_num_entries, NULL);
307 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
308 srvsvc_dissect_CHARDEV_INFO_0_array, NDR_POINTER_UNIQUE,
309 "CHARDEV_INFO_0 array:", -1, 0);
315 * IDL typedef struct {
316 * IDL [string] [unique] wchar_t *dev;
318 * IDL [string] [unique] wchar_t *user;
320 * IDL } CHARDEV_INFO_1;
323 srvsvc_dissect_CHARDEV_INFO_1(tvbuff_t *tvb, int offset,
324 packet_info *pinfo, proto_tree *tree,
327 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
328 srvsvc_dissect_pointer_UNICODE_STRING,
329 NDR_POINTER_UNIQUE, "Char Device",
330 hf_srvsvc_chrdev, 0);
332 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
333 hf_srvsvc_chrdev_status, 0);
335 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
336 srvsvc_dissect_pointer_UNICODE_STRING,
337 NDR_POINTER_UNIQUE, "User",
340 /* XXX dont know how to decode this time field */
341 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
342 hf_srvsvc_chrdev_time, 0);
347 srvsvc_dissect_CHARDEV_INFO_1_array(tvbuff_t *tvb, int offset,
348 packet_info *pinfo, proto_tree *tree,
351 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
352 srvsvc_dissect_CHARDEV_INFO_1);
358 * IDL typedef struct {
359 * IDL long EntriesRead;
360 * IDL [size_is(EntriesRead)] [unique] CHARDEV_INFO_1 *devs;
361 * IDL } CHARDEV_INFO_1_CONTAINER;
364 srvsvc_dissect_CHARDEV_INFO_1_CONTAINER(tvbuff_t *tvb, int offset,
365 packet_info *pinfo, proto_tree *tree,
368 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
369 hf_srvsvc_num_entries, NULL);
371 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
372 srvsvc_dissect_CHARDEV_INFO_1_array, NDR_POINTER_UNIQUE,
373 "CHARDEV_INFO_1 array:", -1, 3);
379 * IDL typedef [switch_type(long)] union {
380 * IDL [case(0)] [unique] CHARDEV_INFO_0_CONTAINER *dev0;
381 * IDL [case(1)] [unique] CHARDEV_INFO_1_CONTAINER *dev1;
382 * IDL } CHARDEV_ENUM_UNION;
385 srvsvc_dissect_CHARDEV_ENUM_UNION(tvbuff_t *tvb, int offset,
386 packet_info *pinfo, proto_tree *tree,
393 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_info_level, &level);
397 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
398 srvsvc_dissect_CHARDEV_INFO_0_CONTAINER,
399 NDR_POINTER_UNIQUE, "CHARDEV_INFO_0_CONTAINER:",
403 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
404 srvsvc_dissect_CHARDEV_INFO_1_CONTAINER,
405 NDR_POINTER_UNIQUE, "CHARDEV_INFO_1_CONTAINER:",
414 * IDL typedef struct {
416 * IDL CHARDEV_ENUM_UNION devs;
417 * IDL } CHARDEV_ENUM_STRUCT;
420 srvsvc_dissect_CHARDEV_ENUM_STRUCT(tvbuff_t *tvb, int offset,
421 packet_info *pinfo, proto_tree *tree,
424 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
425 hf_srvsvc_info_level, 0);
427 offset = srvsvc_dissect_CHARDEV_ENUM_UNION(tvb, offset, pinfo, tree, drep);
432 /* XXX dont know the out parameters. only the in parameters.
434 * IDL long NetrCharDevEnum(
435 * IDL [in] [string] [unique] wchar_t *ServerName,
436 * IDL [in] [ref] CHARDEV_ENUM_STRUCT *devs,
437 * IDL [in] long PreferredMaximumLength,
438 * IDL [in] [unique] long *ResumeHandle
442 srvsvc_dissect_netrchardevenum_rqst(tvbuff_t *tvb, int offset,
443 packet_info *pinfo, proto_tree *tree,
446 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
447 srvsvc_dissect_pointer_UNICODE_STRING,
448 NDR_POINTER_UNIQUE, "Server",
449 hf_srvsvc_server, 0);
451 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
452 srvsvc_dissect_CHARDEV_ENUM_STRUCT,
453 NDR_POINTER_REF, "CHARDEV_ENUM_STRUCT",
456 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
457 hf_srvsvc_preferred_len, 0);
459 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
460 srvsvc_dissect_ENUM_HANDLE,
461 NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
467 /* XXX dont know the out parameters. only the in parameters.
469 * IDL long NetrCharDevEnum(
470 * IDL [in] [string] [unique] wchar_t *ServerName,
471 * IDL [in] [string] [ref] wchar_t *DevName,
472 * IDL [in] long Level
476 srvsvc_dissect_netrchardevgetinfo_rqst(tvbuff_t *tvb, int offset,
477 packet_info *pinfo, proto_tree *tree,
480 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
481 srvsvc_dissect_pointer_UNICODE_STRING,
482 NDR_POINTER_UNIQUE, "Server",
483 hf_srvsvc_server, 0);
485 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
486 srvsvc_dissect_pointer_UNICODE_STRING,
487 NDR_POINTER_REF, "Char Device",
488 hf_srvsvc_chrdev, 0);
490 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
491 hf_srvsvc_info_level, 0);
495 /* XXX dont know the out parameters. only the in parameters.
497 * IDL long NetrCharDevControl(
498 * IDL [in] [string] [unique] wchar_t *ServerName,
499 * IDL [in] [string] [ref] wchar_t *DevName,
500 * IDL [in] long Opcode
504 srvsvc_dissect_netrchardevcontrol_rqst(tvbuff_t *tvb, int offset,
505 packet_info *pinfo, proto_tree *tree,
508 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
509 srvsvc_dissect_pointer_UNICODE_STRING,
510 NDR_POINTER_UNIQUE, "Server",
511 hf_srvsvc_server, 0);
513 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
514 srvsvc_dissect_pointer_UNICODE_STRING,
515 NDR_POINTER_REF, "Char Device",
516 hf_srvsvc_chrdev, 0);
518 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
519 hf_srvsvc_chrdev_opcode, 0);
527 * IDL typedef struct {
528 * IDL [string] [unique] wchar_t *dev;
529 * IDL } CHARDEVQ_INFO_0;
532 srvsvc_dissect_CHARDEVQ_INFO_0(tvbuff_t *tvb, int offset,
533 packet_info *pinfo, proto_tree *tree,
536 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
537 srvsvc_dissect_pointer_UNICODE_STRING,
538 NDR_POINTER_UNIQUE, "Char QDevice",
539 hf_srvsvc_chrdev, 0);
544 srvsvc_dissect_CHARDEVQ_INFO_0_array(tvbuff_t *tvb, int offset,
545 packet_info *pinfo, proto_tree *tree,
548 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
549 srvsvc_dissect_CHARDEVQ_INFO_0);
555 * IDL typedef struct {
556 * IDL long EntriesRead;
557 * IDL [size_is(EntriesRead)] [unique] CHARDEVQ_INFO_0 *devs;
558 * IDL } CHARDEVQ_INFO_0_CONTAINER;
561 srvsvc_dissect_CHARDEVQ_INFO_0_CONTAINER(tvbuff_t *tvb, int offset,
562 packet_info *pinfo, proto_tree *tree,
565 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
566 hf_srvsvc_num_entries, NULL);
568 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
569 srvsvc_dissect_CHARDEVQ_INFO_0_array, NDR_POINTER_UNIQUE,
570 "CHARDEVQ_INFO_0 array:", -1, 0);
576 * IDL typedef struct {
577 * IDL [string] [unique] wchar_t *dev;
579 * IDL [string] [unique] wchar_t *devs;
581 * IDL long num_ahead;
582 * IDL } CHARDEVQ_INFO_1;
585 srvsvc_dissect_CHARDEVQ_INFO_1(tvbuff_t *tvb, int offset,
586 packet_info *pinfo, proto_tree *tree,
589 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
590 srvsvc_dissect_pointer_UNICODE_STRING,
591 NDR_POINTER_UNIQUE, "Char Device",
592 hf_srvsvc_chrdev, 0);
594 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
595 hf_srvsvc_chrqpri, 0);
597 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
598 srvsvc_dissect_pointer_UNICODE_STRING,
599 NDR_POINTER_UNIQUE, "Char Devices",
600 hf_srvsvc_chrdevq, 0);
602 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
603 hf_srvsvc_chrqnumusers, 0);
605 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
606 hf_srvsvc_chrqnumahead, 0);
611 srvsvc_dissect_CHARDEVQ_INFO_1_array(tvbuff_t *tvb, int offset,
612 packet_info *pinfo, proto_tree *tree,
615 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
616 srvsvc_dissect_CHARDEVQ_INFO_1);
622 * IDL typedef struct {
623 * IDL long EntriesRead;
624 * IDL [size_is(EntriesRead)] [unique] CHARDEVQ_INFO_1 *devs;
625 * IDL } CHARDEVQ_INFO_1_CONTAINER;
628 srvsvc_dissect_CHARDEVQ_INFO_1_CONTAINER(tvbuff_t *tvb, int offset,
629 packet_info *pinfo, proto_tree *tree,
632 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
633 hf_srvsvc_num_entries, NULL);
635 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
636 srvsvc_dissect_CHARDEVQ_INFO_1_array, NDR_POINTER_UNIQUE,
637 "CHARDEVQ_INFO_1 array:", -1, 3);
643 * IDL typedef [switch_type(long)] union {
644 * IDL [case(0)] [unique] CHARDEVQ_INFO_0_CONTAINER *dev0;
645 * IDL [case(1)] [unique] CHARDEVQ_INFO_1_CONTAINER *dev1;
646 * IDL } CHARDEVQ_ENUM_UNION;
649 srvsvc_dissect_CHARDEVQ_ENUM_UNION(tvbuff_t *tvb, int offset,
650 packet_info *pinfo, proto_tree *tree,
657 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_info_level, &level);
661 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
662 srvsvc_dissect_CHARDEVQ_INFO_0_CONTAINER,
663 NDR_POINTER_UNIQUE, "CHARDEVQ_INFO_0_CONTAINER:",
667 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
668 srvsvc_dissect_CHARDEVQ_INFO_1_CONTAINER,
669 NDR_POINTER_UNIQUE, "CHARDEVQ_INFO_1_CONTAINER:",
678 * IDL typedef struct {
680 * IDL CHARDEVQ_ENUM_UNION devs;
681 * IDL } CHARDEVQ_ENUM_STRUCT;
684 srvsvc_dissect_CHARDEVQ_ENUM_STRUCT(tvbuff_t *tvb, int offset,
685 packet_info *pinfo, proto_tree *tree,
688 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
689 hf_srvsvc_info_level, 0);
691 offset = srvsvc_dissect_CHARDEVQ_ENUM_UNION(tvb, offset, pinfo, tree, drep);
697 * IDL typedef [switch_type(long)] union {
698 * IDL [case(0)] [unique] CHARDEVQ_INFO_0 *dev0;
699 * IDL [case(1)] [unique] CHARDEVQ_INFO_1 *dev1;
700 * IDL } CHARDEVQ_INFO;
703 srvsvc_dissect_CHARDEVQ_INFO(tvbuff_t *tvb, int offset,
704 packet_info *pinfo, proto_tree *tree,
711 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_info_level, &level);
715 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
716 srvsvc_dissect_CHARDEVQ_INFO_0,
717 NDR_POINTER_UNIQUE, "CHARDEVQ_INFO_0:",
721 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
722 srvsvc_dissect_CHARDEVQ_INFO_1,
723 NDR_POINTER_UNIQUE, "CHARDEVQ_INFO_1:",
732 /* XXX dont know the out parameters. only the in parameters.
734 * IDL long NetrCharDevQEnum(
735 * IDL [in] [string] [unique] wchar_t *ServerName,
736 * IDL [in] [string] [unique] wchar_t *UserName,
737 * IDL [in] [ref] CHARDEVQ_ENUM_STRUCT *devs,
738 * IDL [in] long PreferredMaximumLength,
739 * IDL [in] [unique] long *ResumeHandle
743 srvsvc_dissect_netrchardevqenum_rqst(tvbuff_t *tvb, int offset,
744 packet_info *pinfo, proto_tree *tree,
747 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
748 srvsvc_dissect_pointer_UNICODE_STRING,
749 NDR_POINTER_UNIQUE, "Server",
750 hf_srvsvc_server, 0);
752 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
753 srvsvc_dissect_pointer_UNICODE_STRING,
754 NDR_POINTER_UNIQUE, "User",
757 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
758 srvsvc_dissect_CHARDEVQ_ENUM_STRUCT,
759 NDR_POINTER_REF, "CHARDEVQ_ENUM_STRUCT",
762 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
763 hf_srvsvc_preferred_len, 0);
765 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
766 srvsvc_dissect_ENUM_HANDLE,
767 NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
772 /* XXX dont know the out parameters. only the in parameters.
774 * IDL long NetrCharDevQGetInfo(
775 * IDL [in] [string] [unique] wchar_t *ServerName,
776 * IDL [in] [string] [ref] wchar_t *QueueName,
777 * IDL [in] [string] [ref] wchar_t *UserName,
778 * IDL [in] long Level
782 srvsvc_dissect_netrchardevqgetinfo_rqst(tvbuff_t *tvb, int offset,
783 packet_info *pinfo, proto_tree *tree,
786 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
787 srvsvc_dissect_pointer_UNICODE_STRING,
788 NDR_POINTER_UNIQUE, "Server",
789 hf_srvsvc_server, 0);
791 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
792 srvsvc_dissect_pointer_UNICODE_STRING,
793 NDR_POINTER_REF, "Device Queue",
794 hf_srvsvc_chrdevq, 0);
796 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
797 srvsvc_dissect_pointer_UNICODE_STRING,
798 NDR_POINTER_REF, "User",
801 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
802 hf_srvsvc_info_level, NULL);
807 /* XXX dont know the out parameters. only the in parameters.
809 * IDL long NetrCharDevQSetInfo(
810 * IDL [in] [string] [unique] wchar_t *ServerName,
811 * IDL [in] [string] [ref] wchar_t *QueueName,
812 * IDL [in] long Level,
813 * IDL [in] [ref] CHARDEVQ_INFO *dev,
814 * IDL [in] [unique] long *ParmError
818 srvsvc_dissect_netrchardevqsetinfo_rqst(tvbuff_t *tvb, int offset,
819 packet_info *pinfo, proto_tree *tree,
822 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
823 srvsvc_dissect_pointer_UNICODE_STRING,
824 NDR_POINTER_UNIQUE, "Server",
825 hf_srvsvc_server, 0);
827 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
828 srvsvc_dissect_pointer_UNICODE_STRING,
829 NDR_POINTER_REF, "Device Queue",
830 hf_srvsvc_chrdevq, 0);
832 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
833 hf_srvsvc_info_level, NULL);
835 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
836 srvsvc_dissect_CHARDEVQ_INFO,
837 NDR_POINTER_REF, "CHARDEVQ_INFO",
840 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
841 srvsvc_dissect_pointer_long, NDR_POINTER_UNIQUE,
842 "Parameter Error:", hf_srvsvc_parm_error, 0);
847 /* XXX dont know the out parameters. only the in parameters.
849 * IDL long NetrCharDevQPurge(
850 * IDL [in] [string] [unique] wchar_t *ServerName,
851 * IDL [in] [string] [ref] wchar_t *QueueName
855 srvsvc_dissect_netrchardevqpurge_rqst(tvbuff_t *tvb, int offset,
856 packet_info *pinfo, proto_tree *tree,
859 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
860 srvsvc_dissect_pointer_UNICODE_STRING,
861 NDR_POINTER_UNIQUE, "Server",
862 hf_srvsvc_server, 0);
864 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
865 srvsvc_dissect_pointer_UNICODE_STRING,
866 NDR_POINTER_REF, "Device Queue",
867 hf_srvsvc_chrdevq, 0);
872 /* XXX dont know the out parameters. only the in parameters.
874 * IDL long NetrCharDevQPurge(
875 * IDL [in] [string] [unique] wchar_t *ServerName,
876 * IDL [in] [string] [ref] wchar_t *QueueName
877 * IDL [in] [string] [ref] wchar_t *ComputerName
881 srvsvc_dissect_netrchardevqpurgeself_rqst(tvbuff_t *tvb, int offset,
882 packet_info *pinfo, proto_tree *tree,
885 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
886 srvsvc_dissect_pointer_UNICODE_STRING,
887 NDR_POINTER_UNIQUE, "Server",
888 hf_srvsvc_server, 0);
890 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
891 srvsvc_dissect_pointer_UNICODE_STRING,
892 NDR_POINTER_REF, "Device Queue",
893 hf_srvsvc_chrdevq, 0);
895 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
896 srvsvc_dissect_pointer_UNICODE_STRING,
897 NDR_POINTER_REF, "Computer",
898 hf_srvsvc_computer, 0);
906 * IDL typedef struct {
908 * IDL } CONNECT_INFO_0;
911 srvsvc_dissect_CONNECT_INFO_0(tvbuff_t *tvb, int offset,
912 packet_info *pinfo, proto_tree *tree,
915 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
916 hf_srvsvc_con_id, NULL);
921 srvsvc_dissect_CONNECT_INFO_0_array(tvbuff_t *tvb, int offset,
922 packet_info *pinfo, proto_tree *tree,
925 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
926 srvsvc_dissect_CONNECT_INFO_0);
932 * IDL typedef struct {
933 * IDL long EntriesRead;
934 * IDL [size_is(EntriesRead)] [unique] CONNECT_INFO_0 *cons;
935 * IDL } CONNECT_INFO_0_CONTAINER;
938 srvsvc_dissect_CONNECT_INFO_0_CONTAINER(tvbuff_t *tvb, int offset,
939 packet_info *pinfo, proto_tree *tree,
942 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
943 hf_srvsvc_num_entries, NULL);
945 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
946 srvsvc_dissect_CONNECT_INFO_0_array, NDR_POINTER_UNIQUE,
947 "CONNECT_INFO_0 array:", -1, 0);
954 * IDL typedef struct {
957 * IDL long num_opens;
960 * IDL [string] [unique] wchar_t *username;
961 * IDL [string] [unique] wchar_t *share;
962 * IDL } CONNECT_INFO_1;
965 srvsvc_dissect_CONNECT_INFO_1(tvbuff_t *tvb, int offset,
966 packet_info *pinfo, proto_tree *tree,
969 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
970 hf_srvsvc_con_id, NULL);
972 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
973 hf_srvsvc_con_type, NULL);
975 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
976 hf_srvsvc_con_num_opens, NULL);
978 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
979 hf_srvsvc_users, NULL);
981 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
982 hf_srvsvc_con_time, NULL);
984 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
985 srvsvc_dissect_pointer_UNICODE_STRING,
986 NDR_POINTER_UNIQUE, "User",
989 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
990 srvsvc_dissect_pointer_UNICODE_STRING,
991 NDR_POINTER_UNIQUE, "Share",
997 srvsvc_dissect_CONNECT_INFO_1_array(tvbuff_t *tvb, int offset,
998 packet_info *pinfo, proto_tree *tree,
1001 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
1002 srvsvc_dissect_CONNECT_INFO_1);
1008 * IDL typedef struct {
1009 * IDL long EntriesRead;
1010 * IDL [size_is(EntriesRead)] [unique] CONNECT_INFO_0 *cons;
1011 * IDL } CONNECT_INFO_1_CONTAINER;
1014 srvsvc_dissect_CONNECT_INFO_1_CONTAINER(tvbuff_t *tvb, int offset,
1015 packet_info *pinfo, proto_tree *tree,
1018 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1019 hf_srvsvc_num_entries, NULL);
1021 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1022 srvsvc_dissect_CONNECT_INFO_1_array, NDR_POINTER_UNIQUE,
1023 "CONNECT_INFO_1 array:", -1, 0);
1030 * IDL typedef [switch_type(long)] union {
1031 * IDL [case(0)] [unique] CONNECT_INFO_0_CONTAINER *con0;
1032 * IDL [case(1)] [unique] CONNECT_INFO_1_CONTAINER *con1;
1033 * IDL } CONNECT_ENUM_UNION;
1036 srvsvc_dissect_CONNECT_ENUM_UNION(tvbuff_t *tvb, int offset,
1037 packet_info *pinfo, proto_tree *tree,
1044 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_info_level, &level);
1048 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1049 srvsvc_dissect_CONNECT_INFO_0_CONTAINER,
1050 NDR_POINTER_UNIQUE, "CONNECT_INFO_0_CONTAINER:",
1054 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1055 srvsvc_dissect_CONNECT_INFO_1_CONTAINER,
1056 NDR_POINTER_UNIQUE, "CONNECT_INFO_1_CONTAINER:",
1066 * IDL typedef struct {
1068 * IDL CONNECT_ENUM_UNION devs;
1069 * IDL } CONNECT_ENUM_STRUCT;
1072 srvsvc_dissect_CONNECT_ENUM_STRUCT(tvbuff_t *tvb, int offset,
1073 packet_info *pinfo, proto_tree *tree,
1076 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1077 hf_srvsvc_info_level, 0);
1079 offset = srvsvc_dissect_CONNECT_ENUM_UNION(tvb, offset, pinfo, tree, drep);
1085 /* XXX dont know the out parameters. only the in parameters.
1087 * IDL long NetrConnectionEnum(
1088 * IDL [in] [string] [unique] wchar_t *ServerName,
1089 * IDL [in] [string] [unique] wchar_t *Qualifier,
1090 * IDL [in] [ref] CONNECT_ENUM_STRUCT *con,
1091 * IDL [in] long MaxLen,
1092 * IDL [in] [unique] long *ResumeHandle
1096 srvsvc_dissect_netrconnectionenum_rqst(tvbuff_t *tvb, int offset,
1097 packet_info *pinfo, proto_tree *tree,
1100 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1101 srvsvc_dissect_pointer_UNICODE_STRING,
1102 NDR_POINTER_UNIQUE, "Server",
1103 hf_srvsvc_server, 0);
1105 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1106 srvsvc_dissect_pointer_UNICODE_STRING,
1107 NDR_POINTER_UNIQUE, "Qualifier",
1108 hf_srvsvc_qualifier, 0);
1110 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1111 srvsvc_dissect_CONNECT_ENUM_STRUCT,
1112 NDR_POINTER_REF, "CONNECT_ENUM_STRUCT:",
1115 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1116 hf_srvsvc_preferred_len, 0);
1118 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1119 srvsvc_dissect_ENUM_HANDLE,
1120 NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
1127 * IDL typedef struct {
1129 * IDL } FILE_INFO_2;
1132 srvsvc_dissect_FILE_INFO_2(tvbuff_t *tvb, int offset,
1133 packet_info *pinfo, proto_tree *tree,
1136 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1137 hf_srvsvc_file_id, NULL);
1142 srvsvc_dissect_FILE_INFO_2_array(tvbuff_t *tvb, int offset,
1143 packet_info *pinfo, proto_tree *tree,
1146 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
1147 srvsvc_dissect_FILE_INFO_2);
1153 * IDL typedef struct {
1154 * IDL long EntriesRead;
1155 * IDL [size_is(EntriesRead)] [unique] FILE_INFO_2 *files;
1156 * IDL } FILE_INFO_2_CONTAINER;
1159 srvsvc_dissect_FILE_INFO_2_CONTAINER(tvbuff_t *tvb, int offset,
1160 packet_info *pinfo, proto_tree *tree,
1163 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1164 hf_srvsvc_num_entries, NULL);
1166 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1167 srvsvc_dissect_FILE_INFO_2_array, NDR_POINTER_UNIQUE,
1168 "FILE_INFO_2 array:", -1, 0);
1175 * IDL typedef struct {
1177 * IDL long permissions;
1178 * IDL long num_locks;
1179 * IDL [string] [unique] wchar_t *pathname;
1180 * IDL [string] [unique] wchar_t *username;
1181 * IDL } FILE_INFO_3;
1184 srvsvc_dissect_FILE_INFO_3(tvbuff_t *tvb, int offset,
1185 packet_info *pinfo, proto_tree *tree,
1188 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1189 hf_srvsvc_file_id, NULL);
1191 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1192 hf_srvsvc_perm, NULL);
1194 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1195 hf_srvsvc_file_num_locks, NULL);
1197 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1198 srvsvc_dissect_pointer_UNICODE_STRING,
1199 NDR_POINTER_UNIQUE, "Path",
1202 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1203 srvsvc_dissect_pointer_UNICODE_STRING,
1204 NDR_POINTER_UNIQUE, "User",
1210 srvsvc_dissect_FILE_INFO_3_array(tvbuff_t *tvb, int offset,
1211 packet_info *pinfo, proto_tree *tree,
1214 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
1215 srvsvc_dissect_FILE_INFO_3);
1221 * IDL typedef struct {
1222 * IDL long EntriesRead;
1223 * IDL [size_is(EntriesRead)] [unique] FILE_INFO_3 *files;
1224 * IDL } FILE_INFO_3_CONTAINER;
1227 srvsvc_dissect_FILE_INFO_3_CONTAINER(tvbuff_t *tvb, int offset,
1228 packet_info *pinfo, proto_tree *tree,
1231 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1232 hf_srvsvc_num_entries, NULL);
1234 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1235 srvsvc_dissect_FILE_INFO_3_array, NDR_POINTER_UNIQUE,
1236 "CHARDEV_INFO_3 array:", -1, 0);
1243 * IDL typedef [switch_type(long)] union {
1244 * IDL [case(2)] [unique] FILE_INFO_2_CONTAINER *file0;
1245 * IDL [case(3)] [unique] FILE_INFO_3_CONTAINER *file1;
1246 * IDL } FILE_ENUM_UNION;
1249 srvsvc_dissect_FILE_ENUM_UNION(tvbuff_t *tvb, int offset,
1250 packet_info *pinfo, proto_tree *tree,
1257 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_info_level, &level);
1261 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1262 srvsvc_dissect_FILE_INFO_2_CONTAINER,
1263 NDR_POINTER_UNIQUE, "FILE_INFO_2_CONTAINER:",
1267 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1268 srvsvc_dissect_FILE_INFO_3_CONTAINER,
1269 NDR_POINTER_UNIQUE, "FILE_INFO_3_CONTAINER:",
1279 * IDL typedef struct {
1281 * IDL FILE_ENUM_UNION files;
1282 * IDL } FILE_ENUM_STRUCT;
1285 srvsvc_dissect_FILE_ENUM_STRUCT(tvbuff_t *tvb, int offset,
1286 packet_info *pinfo, proto_tree *tree,
1289 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1290 hf_srvsvc_info_level, 0);
1292 offset = srvsvc_dissect_FILE_ENUM_UNION(tvb, offset, pinfo, tree, drep);
1298 /* XXX dont know the out parameters. only the in parameters.
1300 * IDL long NetrFileEnum(
1301 * IDL [in] [string] [unique] wchar_t *ServerName,
1302 * IDL [in] [string] [unique] wchar_t *Path,
1303 * IDL [in] [string] [unique] wchar_t *UserName,
1304 * IDL [in] [ref] FILE_ENUM_STRUCT *file,
1305 * IDL [in] long MaxLen,
1306 * IDL [in] [unique] long *ResumeHandle
1310 srvsvc_dissect_netrfileenum_rqst(tvbuff_t *tvb, int offset,
1311 packet_info *pinfo, proto_tree *tree,
1314 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1315 srvsvc_dissect_pointer_UNICODE_STRING,
1316 NDR_POINTER_UNIQUE, "Server",
1317 hf_srvsvc_server, 0);
1319 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1320 srvsvc_dissect_pointer_UNICODE_STRING,
1321 NDR_POINTER_UNIQUE, "Path",
1324 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1325 srvsvc_dissect_pointer_UNICODE_STRING,
1326 NDR_POINTER_UNIQUE, "User",
1329 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1330 srvsvc_dissect_FILE_ENUM_STRUCT,
1331 NDR_POINTER_REF, "FILE_ENUM_STRUCT:",
1334 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1335 hf_srvsvc_preferred_len, 0);
1337 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1338 srvsvc_dissect_ENUM_HANDLE,
1339 NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
1345 /* XXX dont know the out parameters. only the in parameters.
1347 * IDL long NetrFileGetInfo(
1348 * IDL [in] [string] [unique] wchar_t *ServerName,
1349 * IDL [in] long fileid,
1350 * IDL [in] long level,
1354 srvsvc_dissect_netrfilegetinfo_rqst(tvbuff_t *tvb, int offset,
1355 packet_info *pinfo, proto_tree *tree,
1358 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1359 srvsvc_dissect_pointer_UNICODE_STRING,
1360 NDR_POINTER_UNIQUE, "Server",
1361 hf_srvsvc_server, 0);
1363 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1364 hf_srvsvc_file_id, NULL);
1366 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1367 hf_srvsvc_info_level, 0);
1373 /* XXX dont know the out parameters. only the in parameters.
1375 * IDL long NetrFileClose(
1376 * IDL [in] [string] [unique] wchar_t *ServerName,
1377 * IDL [in] long fileid,
1381 srvsvc_dissect_netrfileclose_rqst(tvbuff_t *tvb, int offset,
1382 packet_info *pinfo, proto_tree *tree,
1385 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1386 srvsvc_dissect_pointer_UNICODE_STRING,
1387 NDR_POINTER_UNIQUE, "Server",
1388 hf_srvsvc_server, 0);
1390 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1391 hf_srvsvc_file_id, NULL);
1397 * IDL typedef struct {
1398 * IDL [string] [unique] wchar_t *ses;
1399 * IDL } SESSION_INFO_0;
1402 srvsvc_dissect_SESSION_INFO_0(tvbuff_t *tvb, int offset,
1403 packet_info *pinfo, proto_tree *tree,
1406 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1407 srvsvc_dissect_pointer_UNICODE_STRING,
1408 NDR_POINTER_UNIQUE, "Session",
1409 hf_srvsvc_session, 0);
1414 srvsvc_dissect_SESSION_INFO_0_array(tvbuff_t *tvb, int offset,
1415 packet_info *pinfo, proto_tree *tree,
1418 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
1419 srvsvc_dissect_SESSION_INFO_0);
1425 * IDL typedef struct {
1426 * IDL long EntriesRead;
1427 * IDL [size_is(EntriesRead)] [unique] SESSION_INFO_0 *ses;
1428 * IDL } SESSION_INFO_0_CONTAINER;
1431 srvsvc_dissect_SESSION_INFO_0_CONTAINER(tvbuff_t *tvb, int offset,
1432 packet_info *pinfo, proto_tree *tree,
1435 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1436 hf_srvsvc_num_entries, NULL);
1438 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1439 srvsvc_dissect_SESSION_INFO_0_array, NDR_POINTER_UNIQUE,
1440 "SESSION_INFO_0 array:", -1, 0);
1446 * IDL typedef struct {
1447 * IDL [string] [unique] wchar_t *ses;
1448 * IDL [string] [unique] wchar_t *user;
1449 * IDL long num_open;
1451 * IDL long idle_time;
1452 * IDL long user_flags
1453 * IDL } SESSION_INFO_1;
1456 srvsvc_dissect_SESSION_INFO_1(tvbuff_t *tvb, int offset,
1457 packet_info *pinfo, proto_tree *tree,
1460 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1461 srvsvc_dissect_pointer_UNICODE_STRING,
1462 NDR_POINTER_UNIQUE, "Session",
1463 hf_srvsvc_session, 0);
1465 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1466 srvsvc_dissect_pointer_UNICODE_STRING,
1467 NDR_POINTER_UNIQUE, "User",
1470 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1471 hf_srvsvc_session_num_opens, NULL);
1473 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1474 hf_srvsvc_session_time, NULL);
1476 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1477 hf_srvsvc_session_idle_time, NULL);
1479 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1480 hf_srvsvc_session_user_flags, NULL);
1485 srvsvc_dissect_SESSION_INFO_1_array(tvbuff_t *tvb, int offset,
1486 packet_info *pinfo, proto_tree *tree,
1489 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
1490 srvsvc_dissect_SESSION_INFO_1);
1496 * IDL typedef struct {
1497 * IDL long EntriesRead;
1498 * IDL [size_is(EntriesRead)] [unique] SESSION_INFO_1 *ses;
1499 * IDL } SESSION_INFO_1_CONTAINER;
1502 srvsvc_dissect_SESSION_INFO_1_CONTAINER(tvbuff_t *tvb, int offset,
1503 packet_info *pinfo, proto_tree *tree,
1506 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1507 hf_srvsvc_num_entries, NULL);
1509 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1510 srvsvc_dissect_SESSION_INFO_1_array, NDR_POINTER_UNIQUE,
1511 "SESSION_INFO_1 array:", -1, 0);
1517 * IDL typedef struct {
1518 * IDL [string] [unique] wchar_t *ses;
1519 * IDL [string] [unique] wchar_t *user;
1520 * IDL long num_open;
1522 * IDL long idle_time;
1523 * IDL long user_flags
1524 * IDL [string] [unique] wchar_t *clienttype;
1525 * IDL } SESSION_INFO_2;
1528 srvsvc_dissect_SESSION_INFO_2(tvbuff_t *tvb, int offset,
1529 packet_info *pinfo, proto_tree *tree,
1532 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1533 srvsvc_dissect_pointer_UNICODE_STRING,
1534 NDR_POINTER_UNIQUE, "Session",
1535 hf_srvsvc_session, 0);
1537 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1538 srvsvc_dissect_pointer_UNICODE_STRING,
1539 NDR_POINTER_UNIQUE, "User",
1542 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1543 hf_srvsvc_session_num_opens, NULL);
1545 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1546 hf_srvsvc_session_time, NULL);
1548 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1549 hf_srvsvc_session_idle_time, NULL);
1551 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1552 hf_srvsvc_session_user_flags, NULL);
1554 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1555 srvsvc_dissect_pointer_UNICODE_STRING,
1556 NDR_POINTER_UNIQUE, "Client Type:",
1557 hf_srvsvc_client_type, 0);
1562 srvsvc_dissect_SESSION_INFO_2_array(tvbuff_t *tvb, int offset,
1563 packet_info *pinfo, proto_tree *tree,
1566 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
1567 srvsvc_dissect_SESSION_INFO_2);
1573 * IDL typedef struct {
1574 * IDL long EntriesRead;
1575 * IDL [size_is(EntriesRead)] [unique] SESSION_INFO_2 *ses;
1576 * IDL } SESSION_INFO_2_CONTAINER;
1579 srvsvc_dissect_SESSION_INFO_2_CONTAINER(tvbuff_t *tvb, int offset,
1580 packet_info *pinfo, proto_tree *tree,
1583 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1584 hf_srvsvc_num_entries, NULL);
1586 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1587 srvsvc_dissect_SESSION_INFO_2_array, NDR_POINTER_UNIQUE,
1588 "SESSION_INFO_2 array:", -1, 0);
1594 * IDL typedef struct {
1595 * IDL [string] [unique] wchar_t *ses;
1596 * IDL [string] [unique] wchar_t *user;
1598 * IDL long idle_time;
1599 * IDL } SESSION_INFO_10;
1602 srvsvc_dissect_SESSION_INFO_10(tvbuff_t *tvb, int offset,
1603 packet_info *pinfo, proto_tree *tree,
1606 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1607 srvsvc_dissect_pointer_UNICODE_STRING,
1608 NDR_POINTER_UNIQUE, "Session",
1609 hf_srvsvc_session, 0);
1611 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1612 srvsvc_dissect_pointer_UNICODE_STRING,
1613 NDR_POINTER_UNIQUE, "User",
1616 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1617 hf_srvsvc_session_time, NULL);
1619 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1620 hf_srvsvc_session_idle_time, NULL);
1625 srvsvc_dissect_SESSION_INFO_10_array(tvbuff_t *tvb, int offset,
1626 packet_info *pinfo, proto_tree *tree,
1629 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
1630 srvsvc_dissect_SESSION_INFO_10);
1636 * IDL typedef struct {
1637 * IDL long EntriesRead;
1638 * IDL [size_is(EntriesRead)] [unique] SESSION_INFO_10 *ses;
1639 * IDL } SESSION_INFO_10_CONTAINER;
1642 srvsvc_dissect_SESSION_INFO_10_CONTAINER(tvbuff_t *tvb, int offset,
1643 packet_info *pinfo, proto_tree *tree,
1646 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1647 hf_srvsvc_num_entries, NULL);
1649 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1650 srvsvc_dissect_SESSION_INFO_10_array, NDR_POINTER_UNIQUE,
1651 "SESSION_INFO_10 array:", -1, 0);
1657 * IDL typedef struct {
1658 * IDL [string] [unique] wchar_t *ses;
1659 * IDL [string] [unique] wchar_t *user;
1660 * IDL long num_open;
1662 * IDL long idle_time;
1663 * IDL long user_flags
1664 * IDL [string] [unique] wchar_t *clienttype;
1665 * IDL [string] [unique] wchar_t *transport;
1666 * IDL } SESSION_INFO_502;
1669 srvsvc_dissect_SESSION_INFO_502(tvbuff_t *tvb, int offset,
1670 packet_info *pinfo, proto_tree *tree,
1673 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1674 srvsvc_dissect_pointer_UNICODE_STRING,
1675 NDR_POINTER_UNIQUE, "Session",
1676 hf_srvsvc_session, 0);
1678 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1679 srvsvc_dissect_pointer_UNICODE_STRING,
1680 NDR_POINTER_UNIQUE, "User",
1683 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1684 hf_srvsvc_session_num_opens, NULL);
1686 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1687 hf_srvsvc_session_time, NULL);
1689 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1690 hf_srvsvc_session_idle_time, NULL);
1692 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1693 hf_srvsvc_session_user_flags, NULL);
1695 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1696 srvsvc_dissect_pointer_UNICODE_STRING,
1697 NDR_POINTER_UNIQUE, "Client Type:",
1698 hf_srvsvc_client_type, 0);
1700 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1701 srvsvc_dissect_pointer_UNICODE_STRING,
1702 NDR_POINTER_UNIQUE, "Transport:",
1703 hf_srvsvc_transport, 0);
1708 srvsvc_dissect_SESSION_INFO_502_array(tvbuff_t *tvb, int offset,
1709 packet_info *pinfo, proto_tree *tree,
1712 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
1713 srvsvc_dissect_SESSION_INFO_502);
1719 * IDL typedef struct {
1720 * IDL long EntriesRead;
1721 * IDL [size_is(EntriesRead)] [unique] SESSION_INFO_502 *ses;
1722 * IDL } SESSION_INFO_502_CONTAINER;
1725 srvsvc_dissect_SESSION_INFO_502_CONTAINER(tvbuff_t *tvb, int offset,
1726 packet_info *pinfo, proto_tree *tree,
1729 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1730 hf_srvsvc_num_entries, NULL);
1732 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1733 srvsvc_dissect_SESSION_INFO_502_array, NDR_POINTER_UNIQUE,
1734 "SESSION_INFO_502 array:", -1, 0);
1740 * IDL typedef [switch_type(long)] union {
1741 * IDL [case(0)] [unique] SESSION_INFO_0_CONTAINER *ses0;
1742 * IDL [case(1)] [unique] SESSION_INFO_1_CONTAINER *ses1;
1743 * IDL [case(2)] [unique] SESSION_INFO_2_CONTAINER *ses2;
1744 * IDL [case(10)] [unique] SESSION_INFO_10_CONTAINER *ses10;
1745 * IDL [case(502)] [unique] SESSION_INFO_502_CONTAINER *ses502;
1746 * IDL } SESSION_ENUM_UNION;
1749 srvsvc_dissect_SESSION_ENUM_UNION(tvbuff_t *tvb, int offset,
1750 packet_info *pinfo, proto_tree *tree,
1757 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_info_level, &level);
1761 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1762 srvsvc_dissect_SESSION_INFO_0_CONTAINER,
1763 NDR_POINTER_UNIQUE, "SESSION_INFO_0_CONTAINER:",
1767 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1768 srvsvc_dissect_SESSION_INFO_1_CONTAINER,
1769 NDR_POINTER_UNIQUE, "SESSION_INFO_1_CONTAINER:",
1773 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1774 srvsvc_dissect_SESSION_INFO_2_CONTAINER,
1775 NDR_POINTER_UNIQUE, "SESSION_INFO_2_CONTAINER:",
1779 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1780 srvsvc_dissect_SESSION_INFO_10_CONTAINER,
1781 NDR_POINTER_UNIQUE, "SESSION_INFO_10_CONTAINER:",
1785 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1786 srvsvc_dissect_SESSION_INFO_502_CONTAINER,
1787 NDR_POINTER_UNIQUE, "SESSION_INFO_502_CONTAINER:",
1796 * IDL typedef struct {
1798 * IDL SESSION_ENUM_UNION ses;
1799 * IDL } SESSION_ENUM_STRUCT;
1802 srvsvc_dissect_SESSION_ENUM_STRUCT(tvbuff_t *tvb, int offset,
1803 packet_info *pinfo, proto_tree *tree,
1806 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1807 hf_srvsvc_info_level, 0);
1809 offset = srvsvc_dissect_SESSION_ENUM_UNION(tvb, offset, pinfo, tree, drep);
1815 /* XXX dont know the out parameters. only the in parameters.
1817 * IDL long NetrSessionEnum(
1818 * IDL [in] [string] [unique] wchar_t *ServerName,
1819 * IDL [in] [string] [unique] wchar_t *ClientName,
1820 * IDL [in] [string] [unique] wchar_t *UserName,
1821 * IDL [in] [ref] SESSION_ENUM_STRUCT *ses,
1822 * IDL [in] long maxlen,
1823 * IDL [in] [unique] long *resumehandle,
1827 srvsvc_dissect_netrsessionenum_rqst(tvbuff_t *tvb, int offset,
1828 packet_info *pinfo, proto_tree *tree,
1831 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1832 srvsvc_dissect_pointer_UNICODE_STRING,
1833 NDR_POINTER_UNIQUE, "Server",
1834 hf_srvsvc_server, 0);
1836 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1837 srvsvc_dissect_pointer_UNICODE_STRING,
1838 NDR_POINTER_UNIQUE, "Computer",
1839 hf_srvsvc_computer, 0);
1841 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1842 srvsvc_dissect_pointer_UNICODE_STRING,
1843 NDR_POINTER_UNIQUE, "User",
1846 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1847 srvsvc_dissect_SESSION_ENUM_STRUCT,
1848 NDR_POINTER_REF, "SESSION_ENUM_STRUCT",
1851 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1852 hf_srvsvc_preferred_len, 0);
1854 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1855 srvsvc_dissect_ENUM_HANDLE,
1856 NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
1861 /* XXX dont know the out parameters. only the in parameters.
1863 * IDL long NetrSessionDel(
1864 * IDL [in] [string] [unique] wchar_t *ServerName,
1865 * IDL [in] [string] [ref] wchar_t *ClientName,
1866 * IDL [in] [string] [ref] wchar_t *UserName,
1870 srvsvc_dissect_netrsessiondel_rqst(tvbuff_t *tvb, int offset,
1871 packet_info *pinfo, proto_tree *tree,
1874 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1875 srvsvc_dissect_pointer_UNICODE_STRING,
1876 NDR_POINTER_UNIQUE, "Server",
1877 hf_srvsvc_server, 0);
1879 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1880 srvsvc_dissect_pointer_UNICODE_STRING,
1881 NDR_POINTER_REF, "Computer",
1882 hf_srvsvc_computer, 0);
1884 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1885 srvsvc_dissect_pointer_UNICODE_STRING,
1886 NDR_POINTER_REF, "User",
1893 * IDL typedef struct {
1894 * IDL [string] [unique] wchar_t *share;
1895 * IDL } SHARE_INFO_0;
1898 srvsvc_dissect_SHARE_INFO_0(tvbuff_t *tvb, int offset,
1899 packet_info *pinfo, proto_tree *tree,
1902 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1903 srvsvc_dissect_pointer_UNICODE_STRING,
1904 NDR_POINTER_UNIQUE, "Share",
1905 hf_srvsvc_share, 0);
1910 srvsvc_dissect_SHARE_INFO_0_array(tvbuff_t *tvb, int offset,
1911 packet_info *pinfo, proto_tree *tree,
1914 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
1915 srvsvc_dissect_SHARE_INFO_0);
1921 * IDL typedef struct {
1922 * IDL long EntriesRead;
1923 * IDL [size_is(EntriesRead)] [unique] SHARE_INFO_0 *shares;
1924 * IDL } SHARE_INFO_0_CONTAINER;
1927 srvsvc_dissect_SHARE_INFO_0_CONTAINER(tvbuff_t *tvb, int offset,
1928 packet_info *pinfo, proto_tree *tree,
1931 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1932 hf_srvsvc_num_entries, NULL);
1934 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1935 srvsvc_dissect_SHARE_INFO_0_array, NDR_POINTER_UNIQUE,
1936 "SHARE_INFO_0 array:", -1, 0);
1942 IDL typedef struct {
1943 IDL [unique] [string] wchar_t *share;
1945 IDL [unique] [string] wchar_t *comment;
1949 srvsvc_dissect_SHARE_INFO_1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, char *drep)
1951 proto_item *item = NULL;
1952 proto_tree *tree = NULL;
1956 di=pinfo->private_data;
1958 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "Share");
1959 tree = proto_item_add_subtree(item, ett_srvsvc_share_info_1);
1962 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1963 srvsvc_dissect_pointer_UNICODE_STRING, NDR_POINTER_UNIQUE,
1964 "Share", hf_srvsvc_share, di->levels);
1966 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1967 hf_srvsvc_share_type, NULL);
1969 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1970 srvsvc_dissect_pointer_UNICODE_STRING, NDR_POINTER_UNIQUE,
1971 "Comment", hf_srvsvc_comment, 0);
1976 srvsvc_dissect_SHARE_INFO_1_array(tvbuff_t *tvb, int offset,
1977 packet_info *pinfo, proto_tree *tree,
1980 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
1981 srvsvc_dissect_SHARE_INFO_1);
1987 * IDL typedef struct {
1988 * IDL long EntriesRead;
1989 * IDL [size_is(EntriesRead)] [unique] SHARE_INFO_1 *shares;
1990 * IDL } SHARE_INFO_1_CONTAINER;
1993 srvsvc_dissect_SHARE_INFO_1_CONTAINER(tvbuff_t *tvb, int offset,
1994 packet_info *pinfo, proto_tree *tree,
1997 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1998 hf_srvsvc_num_entries, NULL);
2000 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2001 srvsvc_dissect_SHARE_INFO_1_array, NDR_POINTER_UNIQUE,
2002 "SHARE_INFO_1 array:", -1, 3);
2008 IDL typedef struct {
2009 IDL [unique] [string] wchar_t *share;
2011 IDL [unique] [string] wchar_t *comment;
2012 IDL long permissions;
2014 IDL long current_uses;
2015 IDL [unique] [string] wchar_t *path;
2016 IDL [unique] [string] wchar_t *passwd;
2020 srvsvc_dissect_SHARE_INFO_2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, char *drep)
2022 proto_item *item = NULL;
2023 proto_tree *tree = NULL;
2027 di=pinfo->private_data;
2029 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "Share");
2030 tree = proto_item_add_subtree(item, ett_srvsvc_share_info_2);
2033 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2034 srvsvc_dissect_pointer_UNICODE_STRING, NDR_POINTER_UNIQUE,
2035 "Share", hf_srvsvc_share, di->levels);
2037 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2038 hf_srvsvc_share_type, NULL);
2040 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2041 srvsvc_dissect_pointer_UNICODE_STRING, NDR_POINTER_UNIQUE,
2042 "Comment", hf_srvsvc_comment, 0);
2044 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2045 hf_srvsvc_perm, NULL);
2047 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2048 hf_srvsvc_max_uses, NULL);
2050 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2051 hf_srvsvc_cur_uses, NULL);
2053 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2054 srvsvc_dissect_pointer_UNICODE_STRING,
2055 NDR_POINTER_UNIQUE, "Path",
2058 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2059 srvsvc_dissect_pointer_UNICODE_STRING,
2060 NDR_POINTER_UNIQUE, "Passwd",
2061 hf_srvsvc_share_passwd, 0);
2066 srvsvc_dissect_SHARE_INFO_2_array(tvbuff_t *tvb, int offset,
2067 packet_info *pinfo, proto_tree *tree,
2070 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
2071 srvsvc_dissect_SHARE_INFO_2);
2077 * IDL typedef struct {
2078 * IDL long EntriesRead;
2079 * IDL [size_is(EntriesRead)] [unique] SHARE_INFO_2 *shares;
2080 * IDL } SHARE_INFO_2_CONTAINER;
2083 srvsvc_dissect_SHARE_INFO_2_CONTAINER(tvbuff_t *tvb, int offset,
2084 packet_info *pinfo, proto_tree *tree,
2087 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2088 hf_srvsvc_num_entries, NULL);
2090 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2091 srvsvc_dissect_SHARE_INFO_2_array, NDR_POINTER_UNIQUE,
2092 "SHARE_INFO_2 array:", -1, 0);
2098 IDL typedef struct {
2099 IDL [unique] [string] wchar_t *share;
2101 IDL [unique] [string] wchar_t *comment;
2102 IDL long permissions;
2104 IDL long current_uses;
2105 IDL [unique] [string] wchar_t *path;
2106 IDL [unique] [string] wchar_t *passwd;
2108 IDL SECDESC [unique] *securitysecriptor; 4byte-len followed by bytestring
2109 IDL } SHARE_INFO_502;
2112 srvsvc_dissect_SHARE_INFO_502(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, char *drep)
2114 proto_item *item = NULL;
2115 proto_tree *tree = NULL;
2119 di=pinfo->private_data;
2121 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "Share");
2122 tree = proto_item_add_subtree(item, ett_srvsvc_share_info_502);
2125 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2126 srvsvc_dissect_pointer_UNICODE_STRING, NDR_POINTER_UNIQUE,
2127 "Share", hf_srvsvc_share, di->levels);
2129 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2130 hf_srvsvc_share_type, NULL);
2132 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2133 srvsvc_dissect_pointer_UNICODE_STRING, NDR_POINTER_UNIQUE,
2134 "Comment", hf_srvsvc_comment, 0);
2136 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2137 hf_srvsvc_perm, NULL);
2139 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2140 hf_srvsvc_max_uses, NULL);
2142 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2143 hf_srvsvc_cur_uses, NULL);
2145 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2146 srvsvc_dissect_pointer_UNICODE_STRING,
2147 NDR_POINTER_UNIQUE, "Path",
2150 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2151 srvsvc_dissect_pointer_UNICODE_STRING,
2152 NDR_POINTER_UNIQUE, "Passwd",
2153 hf_srvsvc_share_passwd, 0);
2155 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2156 hf_srvsvc_reserved, NULL);
2158 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2159 lsa_dissect_LSA_SECURITY_DESCRIPTOR_data, NDR_POINTER_UNIQUE,
2160 "LSA SECURITY DESCRIPTOR data:", -1, 0);
2165 srvsvc_dissect_SHARE_INFO_502_array(tvbuff_t *tvb, int offset,
2166 packet_info *pinfo, proto_tree *tree,
2169 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
2170 srvsvc_dissect_SHARE_INFO_502);
2176 * IDL typedef struct {
2177 * IDL long EntriesRead;
2178 * IDL [size_is(EntriesRead)] [unique] SHARE_INFO_502 *shares;
2179 * IDL } SHARE_INFO_502_CONTAINER;
2182 srvsvc_dissect_SHARE_INFO_502_CONTAINER(tvbuff_t *tvb, int offset,
2183 packet_info *pinfo, proto_tree *tree,
2186 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2187 hf_srvsvc_num_entries, NULL);
2189 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2190 srvsvc_dissect_SHARE_INFO_502_array, NDR_POINTER_UNIQUE,
2191 "SHARE_INFO_502 array:", -1, 0);
2197 IDL typedef struct {
2198 IDL [unique] [string] wchar_t *comment;
2199 IDL } SHARE_INFO_1004;
2202 srvsvc_dissect_SHARE_INFO_1004(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, char *drep)
2204 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2205 srvsvc_dissect_pointer_UNICODE_STRING, NDR_POINTER_UNIQUE,
2206 "Comment", hf_srvsvc_comment, 0);
2211 srvsvc_dissect_SHARE_INFO_1004_array(tvbuff_t *tvb, int offset,
2212 packet_info *pinfo, proto_tree *tree,
2215 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
2216 srvsvc_dissect_SHARE_INFO_1004);
2222 * IDL typedef struct {
2223 * IDL long EntriesRead;
2224 * IDL [size_is(EntriesRead)] [unique] SHARE_INFO_1004 *shares;
2225 * IDL } SHARE_INFO_1004_CONTAINER;
2228 srvsvc_dissect_SHARE_INFO_1004_CONTAINER(tvbuff_t *tvb, int offset,
2229 packet_info *pinfo, proto_tree *tree,
2232 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2233 hf_srvsvc_num_entries, NULL);
2235 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2236 srvsvc_dissect_SHARE_INFO_1004_array, NDR_POINTER_UNIQUE,
2237 "SHARE_INFO_1004 array:", -1, 0);
2243 IDL typedef struct {
2245 IDL } SHARE_INFO_1006;
2248 srvsvc_dissect_SHARE_INFO_1006(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, char *drep)
2250 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2251 hf_srvsvc_max_uses, NULL);
2256 srvsvc_dissect_SHARE_INFO_1006_array(tvbuff_t *tvb, int offset,
2257 packet_info *pinfo, proto_tree *tree,
2260 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
2261 srvsvc_dissect_SHARE_INFO_1006);
2267 * IDL typedef struct {
2268 * IDL long EntriesRead;
2269 * IDL [size_is(EntriesRead)] [unique] SHARE_INFO_1006 *shares;
2270 * IDL } SHARE_INFO_1006_CONTAINER;
2273 srvsvc_dissect_SHARE_INFO_1006_CONTAINER(tvbuff_t *tvb, int offset,
2274 packet_info *pinfo, proto_tree *tree,
2277 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2278 hf_srvsvc_num_entries, NULL);
2280 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2281 srvsvc_dissect_SHARE_INFO_1006_array, NDR_POINTER_UNIQUE,
2282 "SHARE_INFO_1006 array:", -1, 0);
2289 * IDL typedef [switch_type(long)] union {
2290 * IDL [case(0)] [unique] SHARE_INFO_0 *share0;
2291 * IDL [case(1)] [unique] SHARE_INFO_1 *share1;
2292 * IDL [case(2)] [unique] SHARE_INFO_2 *share2;
2293 * IDL [case(502)] [unique] SHARE_INFO_502 *share502;
2294 * IDL [case(1004)] [unique] SHARE_INFO_1004 *share1004;
2295 * IDL [case(1006)] [unique] SHARE_INFO_1006 *share1006;
2296 * IDL } SHARE_INFO_UNION;
2299 srvsvc_dissect_SHARE_INFO_UNION(tvbuff_t *tvb, int offset,
2300 packet_info *pinfo, proto_tree *tree,
2307 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_info_level, &level);
2311 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2312 srvsvc_dissect_SHARE_INFO_0,
2313 NDR_POINTER_UNIQUE, "SHARE_INFO_0:",
2317 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2318 srvsvc_dissect_SHARE_INFO_1,
2319 NDR_POINTER_UNIQUE, "SHARE_INFO_1:",
2323 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2324 srvsvc_dissect_SHARE_INFO_2,
2325 NDR_POINTER_UNIQUE, "SHARE_INFO_2:",
2329 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2330 srvsvc_dissect_SHARE_INFO_502,
2331 NDR_POINTER_UNIQUE, "SHARE_INFO_502:",
2335 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2336 srvsvc_dissect_SHARE_INFO_1004,
2337 NDR_POINTER_UNIQUE, "SHARE_INFO_1004:",
2341 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2342 srvsvc_dissect_SHARE_INFO_1006,
2343 NDR_POINTER_UNIQUE, "SHARE_INFO_1006:",
2352 /* XXX dont know the out parameters. only the in parameters.
2354 * IDL long NetrShareAdd(
2355 * IDL [in] [string] [unique] wchar_t *ServerName,
2356 * IDL [in] long Level,
2357 * IDL [in] [ref] SHARE_INFO_UNION *share,
2358 * IDL [in] [unique] ParmError
2362 srvsvc_dissect_netrshareadd_rqst(tvbuff_t *tvb, int offset,
2363 packet_info *pinfo, proto_tree *tree,
2366 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2367 srvsvc_dissect_pointer_UNICODE_STRING,
2368 NDR_POINTER_UNIQUE, "Server",
2369 hf_srvsvc_server, 0);
2371 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2372 hf_srvsvc_info_level, 0);
2374 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2375 srvsvc_dissect_SHARE_INFO_UNION,
2376 NDR_POINTER_REF, "SHARE_INFO_UNION:",
2379 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2380 srvsvc_dissect_pointer_long, NDR_POINTER_UNIQUE,
2381 "Parameter Error:", hf_srvsvc_parm_error, 0);
2387 * IDL typedef [switch_type(long)] union {
2388 * IDL [case(0)] [unique] SHARE_INFO_0_CONTAINER *share0;
2389 * IDL [case(1)] [unique] SHARE_INFO_1_CONTAINER *share1;
2390 * IDL [case(2)] [unique] SHARE_INFO_2_CONTAINER *share2;
2391 * IDL [case(502)] [unique] SHARE_INFO_502_CONTAINER *share502;
2392 * IDL [case(1004)] [unique] SHARE_INFO_1004_CONTAINER *share1004;
2393 * IDL [case(1006)] [unique] SHARE_INFO_1006_CONTAINER *share1006;
2394 * IDL } SHARE_ENUM_UNION;
2397 srvsvc_dissect_SHARE_ENUM_UNION(tvbuff_t *tvb, int offset,
2398 packet_info *pinfo, proto_tree *tree,
2405 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_info_level, &level);
2409 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2410 srvsvc_dissect_SHARE_INFO_0_CONTAINER,
2411 NDR_POINTER_UNIQUE, "SHARE_INFO_0_CONTAINER:",
2415 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2416 srvsvc_dissect_SHARE_INFO_1_CONTAINER,
2417 NDR_POINTER_UNIQUE, "SHARE_INFO_1_CONTAINER:",
2421 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2422 srvsvc_dissect_SHARE_INFO_2_CONTAINER,
2423 NDR_POINTER_UNIQUE, "SHARE_INFO_2_CONTAINER:",
2427 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2428 srvsvc_dissect_SHARE_INFO_502_CONTAINER,
2429 NDR_POINTER_UNIQUE, "SHARE_INFO_502_CONTAINER:",
2433 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2434 srvsvc_dissect_SHARE_INFO_1004_CONTAINER,
2435 NDR_POINTER_UNIQUE, "SHARE_INFO_1004_CONTAINER:",
2439 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2440 srvsvc_dissect_SHARE_INFO_1006_CONTAINER,
2441 NDR_POINTER_UNIQUE, "SHARE_INFO_1006_CONTAINER:",
2450 * IDL typedef struct {
2452 * IDL SHARE_ENUM_UNION shares;
2453 * IDL } SHARE_ENUM_STRUCT;
2456 srvsvc_dissect_SHARE_ENUM_STRUCT(tvbuff_t *tvb, int offset,
2457 packet_info *pinfo, proto_tree *tree,
2460 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2461 hf_srvsvc_info_level, 0);
2463 offset = srvsvc_dissect_SHARE_ENUM_UNION(tvb, offset, pinfo, tree, drep);
2469 * IDL long NetrShareEnum(
2470 * IDL [in] [string] [unique] wchar_t *ServerName,
2471 * IDL [in] [out] [ref] SHARE_ENUM_STRUCT *share,
2472 * IDL [in] long MaxLen,
2473 * IDL [out] long Entries,
2474 * IDL [in] [out] [unique] *ResumeHandle
2478 srvsvc_dissect_netrshareenum_rqst(tvbuff_t *tvb, int offset,
2479 packet_info *pinfo, proto_tree *tree,
2482 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2483 srvsvc_dissect_pointer_UNICODE_STRING,
2484 NDR_POINTER_UNIQUE, "Server",
2485 hf_srvsvc_server, 0);
2487 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2488 srvsvc_dissect_SHARE_ENUM_STRUCT,
2489 NDR_POINTER_REF, "Shares",
2492 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2493 hf_srvsvc_preferred_len, 0);
2495 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2496 srvsvc_dissect_ENUM_HANDLE,
2497 NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
2503 srvsvc_dissect_netrshareenum_reply(tvbuff_t *tvb, int offset,
2504 packet_info *pinfo, proto_tree *tree,
2507 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2508 srvsvc_dissect_SHARE_ENUM_STRUCT,
2509 NDR_POINTER_REF, "Shares",
2512 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2513 hf_srvsvc_num_entries, NULL);
2515 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2516 srvsvc_dissect_ENUM_HANDLE,
2517 NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
2519 offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
2520 hf_srvsvc_rc, NULL);
2526 * IDL long NetrShareGetInfo(
2527 * IDL [in] [string] [unique] wchar_t *ServerName,
2528 * IDL [in] [string] [ref] wchar_t *ShareName,
2529 * IDL [in] long Level,
2530 * IDL [out] [ref] SHARE_INFO_UNION *share
2534 srvsvc_dissect_netrsharegetinfo_rqst(tvbuff_t *tvb, int offset,
2535 packet_info *pinfo, proto_tree *tree,
2538 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2539 srvsvc_dissect_pointer_UNICODE_STRING,
2540 NDR_POINTER_UNIQUE, "Server",
2541 hf_srvsvc_server, 0);
2543 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2544 srvsvc_dissect_pointer_UNICODE_STRING,
2545 NDR_POINTER_REF, "Share",
2546 hf_srvsvc_share, 0);
2548 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2549 hf_srvsvc_info_level, 0);
2555 srvsvc_dissect_netrsharegetinfo_reply(tvbuff_t *tvb, int offset,
2556 packet_info *pinfo, proto_tree *tree,
2559 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2560 srvsvc_dissect_SHARE_INFO_UNION,
2561 NDR_POINTER_REF, "Share",
2564 offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
2565 hf_srvsvc_rc, NULL);
2570 /* XXX dont know the out parameters. only the in parameters.
2572 * IDL long NetrShareSetInfo(
2573 * IDL [in] [string] [unique] wchar_t *ServerName,
2574 * IDL [in] [string] [ref] wchar_t *ShareName,
2575 * IDL [in] long Level,
2576 * IDL [in] [ref] SHARE_INFO_UNION *share
2577 * IDL [in] [unique] long *ParmError,
2581 srvsvc_dissect_netrsharesetinfo_rqst(tvbuff_t *tvb, int offset,
2582 packet_info *pinfo, proto_tree *tree,
2585 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2586 srvsvc_dissect_pointer_UNICODE_STRING,
2587 NDR_POINTER_UNIQUE, "Server",
2588 hf_srvsvc_server, 0);
2590 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2591 srvsvc_dissect_pointer_UNICODE_STRING,
2592 NDR_POINTER_REF, "Share",
2593 hf_srvsvc_share, 0);
2595 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2596 hf_srvsvc_info_level, 0);
2598 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2599 srvsvc_dissect_SHARE_INFO_UNION,
2600 NDR_POINTER_REF, "Share",
2603 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2604 srvsvc_dissect_pointer_long, NDR_POINTER_UNIQUE,
2605 "Parameter Error:", hf_srvsvc_parm_error, 0);
2610 /* XXX dont know the out parameters. only the in parameters.
2612 * IDL long NetrShareDel(
2613 * IDL [in] [string] [unique] wchar_t *ServerName,
2614 * IDL [in] [string] [ref] wchar_t *ShareName,
2615 * IDL [in] long Reserved,
2619 srvsvc_dissect_netrsharedel_rqst(tvbuff_t *tvb, int offset,
2620 packet_info *pinfo, proto_tree *tree,
2623 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2624 srvsvc_dissect_pointer_UNICODE_STRING,
2625 NDR_POINTER_UNIQUE, "Server",
2626 hf_srvsvc_server, 0);
2628 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2629 srvsvc_dissect_pointer_UNICODE_STRING,
2630 NDR_POINTER_REF, "Share",
2631 hf_srvsvc_share, 0);
2633 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2634 hf_srvsvc_reserved, NULL);
2639 /* XXX dont know the out parameters. only the in parameters.
2641 * IDL long NetrShareDelSticky(
2642 * IDL [in] [string] [unique] wchar_t *ServerName,
2643 * IDL [in] [string] [ref] wchar_t *ShareName,
2644 * IDL [in] long Reserved,
2648 srvsvc_dissect_netrsharedelsticky_rqst(tvbuff_t *tvb, int offset,
2649 packet_info *pinfo, proto_tree *tree,
2652 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2653 srvsvc_dissect_pointer_UNICODE_STRING,
2654 NDR_POINTER_UNIQUE, "Server",
2655 hf_srvsvc_server, 0);
2657 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2658 srvsvc_dissect_pointer_UNICODE_STRING,
2659 NDR_POINTER_REF, "Share",
2660 hf_srvsvc_share, 0);
2662 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2663 hf_srvsvc_reserved, NULL);
2668 /* XXX dont know the out parameters. only the in parameters.
2670 * IDL long NetrShareCheck(
2671 * IDL [in] [string] [unique] wchar_t *ServerName,
2672 * IDL [in] [string] [ref] wchar_t *DeviceName,
2676 srvsvc_dissect_netrsharecheck_rqst(tvbuff_t *tvb, int offset,
2677 packet_info *pinfo, proto_tree *tree,
2680 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2681 srvsvc_dissect_pointer_UNICODE_STRING,
2682 NDR_POINTER_UNIQUE, "Server",
2683 hf_srvsvc_server, 0);
2685 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2686 srvsvc_dissect_pointer_UNICODE_STRING,
2687 NDR_POINTER_UNIQUE, "Char Device",
2688 hf_srvsvc_chrdev, 0);
2694 * IDL typedef struct {
2695 * IDL long platform_id;
2696 * IDL [string] [unique] wchar_t *server;
2697 * IDL } SERVER_INFO_100;
2700 srvsvc_dissect_SERVER_INFO_100(tvbuff_t *tvb, int offset,
2701 packet_info *pinfo, proto_tree *tree,
2704 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2705 hf_srvsvc_platform_id, NULL);
2707 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2708 srvsvc_dissect_pointer_UNICODE_STRING,
2709 NDR_POINTER_UNIQUE, "Server",
2710 hf_srvsvc_server, 0);
2716 * IDL typedef struct {
2717 * IDL long platform_id;
2718 * IDL [string] [unique] wchar_t *server;
2719 * IDL long ver_major;
2720 * IDL long ver_minor;
2722 * IDL [string] [unique] wchar_t *comment;
2723 * IDL } SERVER_INFO_101;
2726 srvsvc_dissect_SERVER_INFO_101(tvbuff_t *tvb, int offset,
2727 packet_info *pinfo, proto_tree *tree,
2730 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2731 hf_srvsvc_platform_id, NULL);
2733 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2734 srvsvc_dissect_pointer_UNICODE_STRING,
2735 NDR_POINTER_UNIQUE, "Server",
2736 hf_srvsvc_server, 0);
2738 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2739 hf_srvsvc_ver_major, NULL);
2741 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2742 hf_srvsvc_ver_minor, NULL);
2744 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2745 hf_srvsvc_server_type, NULL);
2747 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2748 srvsvc_dissect_pointer_UNICODE_STRING,
2749 NDR_POINTER_UNIQUE, "Comment",
2750 hf_srvsvc_comment, 0);
2756 * IDL typedef struct {
2757 * IDL long platform_id;
2758 * IDL [string] [unique] wchar_t *server;
2759 * IDL long ver_major;
2760 * IDL long ver_minor;
2762 * IDL [string] [unique] wchar_t *comment;
2766 * IDL long announce;
2767 * IDL long anndelta;
2768 * IDL long licences;
2769 * IDL [string] [unique] wchar_t *userpath;
2770 * IDL } SERVER_INFO_102;
2773 srvsvc_dissect_SERVER_INFO_102(tvbuff_t *tvb, int offset,
2774 packet_info *pinfo, proto_tree *tree,
2777 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2778 hf_srvsvc_platform_id, NULL);
2780 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2781 srvsvc_dissect_pointer_UNICODE_STRING,
2782 NDR_POINTER_UNIQUE, "Server",
2783 hf_srvsvc_server, 0);
2785 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2786 hf_srvsvc_ver_major, NULL);
2788 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2789 hf_srvsvc_ver_minor, NULL);
2791 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2792 hf_srvsvc_server_type, NULL);
2794 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2795 srvsvc_dissect_pointer_UNICODE_STRING,
2796 NDR_POINTER_UNIQUE, "Comment",
2797 hf_srvsvc_comment, 0);
2799 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2800 hf_srvsvc_users, NULL);
2802 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2803 hf_srvsvc_disc, NULL);
2805 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2806 hf_srvsvc_hidden, NULL);
2808 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2809 hf_srvsvc_announce, NULL);
2811 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2812 hf_srvsvc_anndelta, NULL);
2814 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2815 hf_srvsvc_licences, NULL);
2817 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2818 srvsvc_dissect_pointer_UNICODE_STRING,
2819 NDR_POINTER_UNIQUE, "User Path",
2820 hf_srvsvc_user_path, 0);
2826 * IDL typedef struct {
2827 * IDL long ulist_mtime;
2828 * IDL long glist_mtime;
2829 * IDL long alist_mtime;
2830 * IDL [string] [unique] wchar_t *alerts;
2831 * IDL long security;
2832 * IDL long numadmin;
2834 * IDL [string] [unique] wchar_t *guestaccount;
2837 * IDL long chdevjobs;
2838 * IDL long connections;
2840 * IDL long openfiles;
2841 * IDL long sessopens;
2843 * IDL long sessreqs;
2844 * IDL long opensearch;
2845 * IDL long activelocks;
2846 * IDL long sizreqbufs
2847 * IDL long numbigbufs
2848 * IDL long numfiletasks;
2849 * IDL long alertsched;
2850 * IDL long erroralert;
2851 * IDL long logonalert;
2852 * IDL long accessalert;
2853 * IDL long diskalert;
2854 * IDL long netioalert;
2855 * IDL long maxauditsz;
2856 * IDL [string] [unique] wchar_t *srvheuristics;
2857 * IDL } SERVER_INFO_402;
2860 srvsvc_dissect_SERVER_INFO_402(tvbuff_t *tvb, int offset,
2861 packet_info *pinfo, proto_tree *tree,
2864 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2865 hf_srvsvc_ulist_mtime, NULL);
2867 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2868 hf_srvsvc_glist_mtime, NULL);
2870 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2871 hf_srvsvc_alist_mtime, NULL);
2873 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2874 srvsvc_dissect_pointer_UNICODE_STRING,
2875 NDR_POINTER_UNIQUE, "Alerts",
2876 hf_srvsvc_alerts, 0);
2878 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2879 hf_srvsvc_security, NULL);
2881 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2882 hf_srvsvc_numadmin, NULL);
2884 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2885 hf_srvsvc_lanmask, NULL);
2887 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2888 srvsvc_dissect_pointer_UNICODE_STRING,
2889 NDR_POINTER_UNIQUE, "Guest",
2890 hf_srvsvc_guest, 0);
2892 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2893 hf_srvsvc_chdevs, NULL);
2895 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2896 hf_srvsvc_chdevqs, NULL);
2898 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2899 hf_srvsvc_chdevjobs, NULL);
2901 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2902 hf_srvsvc_connections, NULL);
2904 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2905 hf_srvsvc_shares, NULL);
2907 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2908 hf_srvsvc_openfiles, NULL);
2910 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2911 hf_srvsvc_sessopens, NULL);
2913 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2914 hf_srvsvc_sessvcs, NULL);
2916 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2917 hf_srvsvc_sessreqs, NULL);
2919 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2920 hf_srvsvc_opensearch, NULL);
2922 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2923 hf_srvsvc_activelocks, NULL);
2925 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2926 hf_srvsvc_sizreqbufs, NULL);
2928 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2929 hf_srvsvc_numbigbufs, NULL);
2931 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2932 hf_srvsvc_numfiletasks, NULL);
2934 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2935 hf_srvsvc_alertsched, NULL);
2937 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2938 hf_srvsvc_erroralert, NULL);
2940 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2941 hf_srvsvc_logonalert, NULL);
2943 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2944 hf_srvsvc_accessalert, NULL);
2946 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2947 hf_srvsvc_diskalert, NULL);
2949 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2950 hf_srvsvc_netioalert, NULL);
2952 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2953 hf_srvsvc_maxauditsz, NULL);
2955 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2956 srvsvc_dissect_pointer_UNICODE_STRING,
2957 NDR_POINTER_UNIQUE, "Server Heuristics",
2958 hf_srvsvc_srvheuristics, 0);
2964 * IDL typedef struct {
2965 * IDL long ulist_mtime;
2966 * IDL long glist_mtime;
2967 * IDL long alist_mtime;
2968 * IDL [string] [unique] wchar_t *alerts;
2969 * IDL long security;
2970 * IDL long numadmin;
2972 * IDL [string] [unique] wchar_t *guestaccount;
2975 * IDL long chdevjobs;
2976 * IDL long connections;
2978 * IDL long openfiles;
2979 * IDL long sessopens;
2981 * IDL long sessreqs;
2982 * IDL long opensearch;
2983 * IDL long activelocks;
2984 * IDL long sizreqbufs
2985 * IDL long numbigbufs
2986 * IDL long numfiletasks;
2987 * IDL long alertsched;
2988 * IDL long erroralert;
2989 * IDL long logonalert;
2990 * IDL long accessalert;
2991 * IDL long diskalert;
2992 * IDL long netioalert;
2993 * IDL long maxauditsz;
2994 * IDL [string] [unique] wchar_t *srvheuristics;
2995 * IDL long auditedevents;
2996 * IDL long auditprofile;
2997 * IDL [string] [unique] wchar_t *autopath;
2998 * IDL } SERVER_INFO_403;
3001 srvsvc_dissect_SERVER_INFO_403(tvbuff_t *tvb, int offset,
3002 packet_info *pinfo, proto_tree *tree,
3005 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3006 hf_srvsvc_ulist_mtime, NULL);
3008 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3009 hf_srvsvc_glist_mtime, NULL);
3011 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3012 hf_srvsvc_alist_mtime, NULL);
3014 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3015 srvsvc_dissect_pointer_UNICODE_STRING,
3016 NDR_POINTER_UNIQUE, "Alerts",
3017 hf_srvsvc_alerts, 0);
3019 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3020 hf_srvsvc_security, NULL);
3022 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3023 hf_srvsvc_numadmin, NULL);
3025 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3026 hf_srvsvc_lanmask, NULL);
3028 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3029 srvsvc_dissect_pointer_UNICODE_STRING,
3030 NDR_POINTER_UNIQUE, "Guest",
3031 hf_srvsvc_guest, 0);
3033 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3034 hf_srvsvc_chdevs, NULL);
3036 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3037 hf_srvsvc_chdevqs, NULL);
3039 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3040 hf_srvsvc_chdevjobs, NULL);
3042 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3043 hf_srvsvc_connections, NULL);
3045 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3046 hf_srvsvc_shares, NULL);
3048 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3049 hf_srvsvc_openfiles, NULL);
3051 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3052 hf_srvsvc_sessopens, NULL);
3054 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3055 hf_srvsvc_sessvcs, NULL);
3057 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3058 hf_srvsvc_sessreqs, NULL);
3060 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3061 hf_srvsvc_opensearch, NULL);
3063 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3064 hf_srvsvc_activelocks, NULL);
3066 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3067 hf_srvsvc_sizreqbufs, NULL);
3069 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3070 hf_srvsvc_numbigbufs, NULL);
3072 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3073 hf_srvsvc_numfiletasks, NULL);
3075 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3076 hf_srvsvc_alertsched, NULL);
3078 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3079 hf_srvsvc_erroralert, NULL);
3081 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3082 hf_srvsvc_logonalert, NULL);
3084 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3085 hf_srvsvc_accessalert, NULL);
3087 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3088 hf_srvsvc_diskalert, NULL);
3090 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3091 hf_srvsvc_netioalert, NULL);
3093 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3094 hf_srvsvc_maxauditsz, NULL);
3096 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3097 srvsvc_dissect_pointer_UNICODE_STRING,
3098 NDR_POINTER_UNIQUE, "Server Heuristics",
3099 hf_srvsvc_srvheuristics, 0);
3101 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3102 hf_srvsvc_auditedevents, NULL);
3104 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3105 hf_srvsvc_auditprofile, NULL);
3107 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3108 srvsvc_dissect_pointer_UNICODE_STRING,
3109 NDR_POINTER_UNIQUE, "Autopath",
3110 hf_srvsvc_autopath, 0);
3116 * IDL typedef struct {
3117 * IDL long sessopens;
3119 * IDL long opensearch;
3120 * IDL long sizreqbufs
3121 * IDL long initworkitems;
3122 * IDL long maxworkitems;
3123 * IDL long rawworkitems;
3124 * IDL long irpstacksize;
3125 * IDL long maxrawbuflen;
3126 * IDL long sessusers;
3127 * IDL long sessconns;
3128 * IDL long maxpagedmemoryusage;
3129 * IDL long maxnonpagedmemoryusage;
3130 * IDL long enablesoftcompat;
3131 * IDL long enableforcedlogoff;
3132 * IDL long timesource
3133 * IDL long acceptdownlevelapis;
3134 * IDL long lmannounce;
3135 * IDL } SERVER_INFO_502;
3138 srvsvc_dissect_SERVER_INFO_502(tvbuff_t *tvb, int offset,
3139 packet_info *pinfo, proto_tree *tree,
3142 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3143 hf_srvsvc_sessopens, NULL);
3145 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3146 hf_srvsvc_sessvcs, NULL);
3148 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3149 hf_srvsvc_opensearch, NULL);
3151 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3152 hf_srvsvc_sizreqbufs, NULL);
3154 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3155 hf_srvsvc_initworkitems, NULL);
3157 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3158 hf_srvsvc_maxworkitems, NULL);
3160 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3161 hf_srvsvc_rawworkitems, NULL);
3163 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3164 hf_srvsvc_irpstacksize, NULL);
3166 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3167 hf_srvsvc_maxrawbuflen, NULL);
3169 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3170 hf_srvsvc_users, NULL);
3172 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3173 hf_srvsvc_connections, NULL);
3175 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3176 hf_srvsvc_maxpagedmemoryusage, NULL);
3178 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3179 hf_srvsvc_maxnonpagedmemoryusage, NULL);
3181 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3182 hf_srvsvc_enablesoftcompat, NULL);
3184 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3185 hf_srvsvc_enableforcedlogoff, NULL);
3187 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3188 hf_srvsvc_timesource, NULL);
3190 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3191 hf_srvsvc_acceptdownlevelapis, NULL);
3193 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3194 hf_srvsvc_lmannounce, NULL);
3200 * IDL typedef struct {
3201 * IDL long sessopens;
3203 * IDL long opensearch;
3204 * IDL long sizreqbufs
3205 * IDL long initworkitems;
3206 * IDL long maxworkitems;
3207 * IDL long rawworkitems;
3208 * IDL long irpstacksize;
3209 * IDL long maxrawbuflen;
3210 * IDL long sessusers;
3211 * IDL long sessconns;
3212 * IDL long maxpagedmemoryusage;
3213 * IDL long maxnonpagedmemoryusage;
3214 * IDL long enablesoftcompat;
3215 * IDL long enableforcedlogoff;
3216 * IDL long timesource
3217 * IDL long acceptdownlevelapis;
3218 * IDL long lmannounce;
3219 * IDL [string] [unique] wchar_t *domain;
3220 * IDL long maxcopyreadlen;
3221 * IDL long maxcopywritelen;
3222 * IDL long minkeepsearch;
3223 * IDL long mankeepsearch;
3224 * IDL long minkeepcomplsearch;
3225 * IDL long mankeepcomplsearch;
3226 * IDL long threadcountadd;
3227 * IDL long numblockthreads;
3228 * IDL long scavtimeout;
3229 * IDL long minrcvqueue;
3230 * IDL long minfreeworkitems;
3231 * IDL long xactmemsize;
3232 * IDL long threadpriority;
3233 * IDL long maxmpxct;
3234 * IDL long oplockbreakwait;
3235 * IDL long oplockbreakresponsewait;
3236 * IDL long enableoplocks;
3237 * IDL long enableoplockforceclose
3238 * IDL long enablefcbopens;
3239 * IDL long enableraw;
3240 * IDL long enablesharednetdrives;
3241 * IDL long minfreeconnections;
3242 * IDL long maxfreeconnections;
3243 * IDL } SERVER_INFO_503;
3246 srvsvc_dissect_SERVER_INFO_503(tvbuff_t *tvb, int offset,
3247 packet_info *pinfo, proto_tree *tree,
3250 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3251 hf_srvsvc_sessopens, NULL);
3253 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3254 hf_srvsvc_sessvcs, NULL);
3256 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3257 hf_srvsvc_opensearch, NULL);
3259 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3260 hf_srvsvc_sizreqbufs, NULL);
3262 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3263 hf_srvsvc_initworkitems, NULL);
3265 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3266 hf_srvsvc_maxworkitems, NULL);
3268 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3269 hf_srvsvc_rawworkitems, NULL);
3271 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3272 hf_srvsvc_irpstacksize, NULL);
3274 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3275 hf_srvsvc_maxrawbuflen, NULL);
3277 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3278 hf_srvsvc_users, NULL);
3280 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3281 hf_srvsvc_connections, NULL);
3283 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3284 hf_srvsvc_maxpagedmemoryusage, NULL);
3286 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3287 hf_srvsvc_maxnonpagedmemoryusage, NULL);
3289 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3290 hf_srvsvc_enablesoftcompat, NULL);
3292 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3293 hf_srvsvc_enableforcedlogoff, NULL);
3295 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3296 hf_srvsvc_timesource, NULL);
3298 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3299 hf_srvsvc_acceptdownlevelapis, NULL);
3301 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3302 hf_srvsvc_lmannounce, NULL);
3304 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3305 srvsvc_dissect_pointer_UNICODE_STRING,
3306 NDR_POINTER_UNIQUE, "Domain",
3307 hf_srvsvc_domain, 0);
3309 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3310 hf_srvsvc_maxcopyreadlen, NULL);
3312 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3313 hf_srvsvc_maxcopywritelen, NULL);
3315 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3316 hf_srvsvc_minkeepsearch, NULL);
3318 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3319 hf_srvsvc_maxkeepsearch, NULL);
3321 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3322 hf_srvsvc_minkeepcomplsearch, NULL);
3324 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3325 hf_srvsvc_maxkeepcomplsearch, NULL);
3327 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3328 hf_srvsvc_threadcountadd, NULL);
3330 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3331 hf_srvsvc_numblockthreads, NULL);
3333 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3334 hf_srvsvc_scavtimeout, NULL);
3336 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3337 hf_srvsvc_minrcvqueue, NULL);
3339 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3340 hf_srvsvc_minfreeworkitems, NULL);
3342 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3343 hf_srvsvc_xactmemsize, NULL);
3345 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3346 hf_srvsvc_threadpriority, NULL);
3348 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3349 hf_srvsvc_maxmpxct, NULL);
3351 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3352 hf_srvsvc_oplockbreakwait, NULL);
3354 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3355 hf_srvsvc_oplockbreakresponsewait, NULL);
3357 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3358 hf_srvsvc_enableoplocks, NULL);
3360 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3361 hf_srvsvc_enableoplockforceclose, NULL);
3363 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3364 hf_srvsvc_enablefcbopens, NULL);
3366 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3367 hf_srvsvc_enableraw, NULL);
3369 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3370 hf_srvsvc_enablesharednetdrives, NULL);
3372 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3373 hf_srvsvc_minfreeconnections, NULL);
3375 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3376 hf_srvsvc_maxfreeconnections, NULL);
3383 * IDL typedef struct {
3384 * IDL long sessopens;
3386 * IDL long opensearch;
3387 * IDL long sizreqbufs
3388 * IDL long initworkitems;
3389 * IDL long maxworkitems;
3390 * IDL long rawworkitems;
3391 * IDL long irpstacksize;
3392 * IDL long maxrawbuflen;
3393 * IDL long sessusers;
3394 * IDL long sessconns;
3395 * IDL long maxpagedmemoryusage;
3396 * IDL long maxnonpagedmemoryusage;
3397 * IDL long enablesoftcompat;
3398 * IDL long enableforcedlogoff;
3399 * IDL long timesource
3400 * IDL long acceptdownlevelapis;
3401 * IDL long lmannounce;
3402 * IDL [string] [unique] wchar_t *domain;
3403 * IDL long maxcopyreadlen;
3404 * IDL long maxcopywritelen;
3405 * IDL long minkeepsearch;
3406 * IDL long mankeepsearch;
3407 * IDL long minkeepcomplsearch;
3408 * IDL long mankeepcomplsearch;
3409 * IDL long threadcountadd;
3410 * IDL long numblockthreads;
3411 * IDL long scavtimeout;
3412 * IDL long minrcvqueue;
3413 * IDL long minfreeworkitems;
3414 * IDL long xactmemsize;
3415 * IDL long threadpriority;
3416 * IDL long maxmpxct;
3417 * IDL long oplockbreakwait;
3418 * IDL long oplockbreakresponsewait;
3419 * IDL long enableoplocks;
3420 * IDL long enableoplockforceclose
3421 * IDL long enablefcbopens;
3422 * IDL long enableraw;
3423 * IDL long enablesharednetdrives;
3424 * IDL long minfreeconnections;
3425 * IDL long maxfreeconnections;
3426 * IDL long initsesstable;
3427 * IDL long initconntable;
3428 * IDL long initfiletable;
3429 * IDL long initsearchtable;
3430 * IDL long alertsched;
3431 * IDL long errortreshold;
3432 * IDL long networkerrortreshold;
3433 * IDL long diskspacetreshold;
3434 * IDL long reserved;
3435 * IDL long maxlinkdelay;
3436 * IDL long minlinkthroughput;
3437 * IDL long linkinfovalidtime;
3438 * IDL long scavqosinfoupdatetime;
3439 * IDL long maxworkitemidletime;
3440 * IDL } SERVER_INFO_599;
3443 srvsvc_dissect_SERVER_INFO_599(tvbuff_t *tvb, int offset,
3444 packet_info *pinfo, proto_tree *tree,
3447 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3448 hf_srvsvc_sessopens, NULL);
3450 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3451 hf_srvsvc_sessvcs, NULL);
3453 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3454 hf_srvsvc_opensearch, NULL);
3456 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3457 hf_srvsvc_sizreqbufs, NULL);
3459 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3460 hf_srvsvc_initworkitems, NULL);
3462 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3463 hf_srvsvc_maxworkitems, NULL);
3465 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3466 hf_srvsvc_rawworkitems, NULL);
3468 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3469 hf_srvsvc_irpstacksize, NULL);
3471 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3472 hf_srvsvc_maxrawbuflen, NULL);
3474 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3475 hf_srvsvc_users, NULL);
3477 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3478 hf_srvsvc_connections, NULL);
3480 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3481 hf_srvsvc_maxpagedmemoryusage, NULL);
3483 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3484 hf_srvsvc_maxnonpagedmemoryusage, NULL);
3486 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3487 hf_srvsvc_enablesoftcompat, NULL);
3489 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3490 hf_srvsvc_enableforcedlogoff, NULL);
3492 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3493 hf_srvsvc_timesource, NULL);
3495 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3496 hf_srvsvc_acceptdownlevelapis, NULL);
3498 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3499 hf_srvsvc_lmannounce, NULL);
3501 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3502 srvsvc_dissect_pointer_UNICODE_STRING,
3503 NDR_POINTER_UNIQUE, "Domain",
3504 hf_srvsvc_domain, 0);
3506 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3507 hf_srvsvc_maxcopyreadlen, NULL);
3509 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3510 hf_srvsvc_maxcopywritelen, NULL);
3512 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3513 hf_srvsvc_minkeepsearch, NULL);
3515 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3516 hf_srvsvc_maxkeepsearch, NULL);
3518 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3519 hf_srvsvc_minkeepcomplsearch, NULL);
3521 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3522 hf_srvsvc_maxkeepcomplsearch, NULL);
3524 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3525 hf_srvsvc_threadcountadd, NULL);
3527 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3528 hf_srvsvc_numblockthreads, NULL);
3530 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3531 hf_srvsvc_scavtimeout, NULL);
3533 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3534 hf_srvsvc_minrcvqueue, NULL);
3536 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3537 hf_srvsvc_minfreeworkitems, NULL);
3539 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3540 hf_srvsvc_xactmemsize, NULL);
3542 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3543 hf_srvsvc_threadpriority, NULL);
3545 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3546 hf_srvsvc_maxmpxct, NULL);
3548 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3549 hf_srvsvc_oplockbreakwait, NULL);
3551 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3552 hf_srvsvc_oplockbreakresponsewait, NULL);
3554 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3555 hf_srvsvc_enableoplocks, NULL);
3557 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3558 hf_srvsvc_enableoplockforceclose, NULL);
3560 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3561 hf_srvsvc_enablefcbopens, NULL);
3563 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3564 hf_srvsvc_enableraw, NULL);
3566 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3567 hf_srvsvc_enablesharednetdrives, NULL);
3569 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3570 hf_srvsvc_minfreeconnections, NULL);
3572 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3573 hf_srvsvc_maxfreeconnections, NULL);
3575 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3576 hf_srvsvc_initsesstable, NULL);
3578 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3579 hf_srvsvc_initconntable, NULL);
3581 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3582 hf_srvsvc_initfiletable, NULL);
3584 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3585 hf_srvsvc_initsearchtable, NULL);
3587 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3588 hf_srvsvc_alertsched, NULL);
3590 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3591 hf_srvsvc_errortreshold, NULL);
3593 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3594 hf_srvsvc_networkerrortreshold, NULL);
3596 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3597 hf_srvsvc_diskspacetreshold, NULL);
3599 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3600 hf_srvsvc_reserved, NULL);
3602 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3603 hf_srvsvc_reserved, NULL);
3605 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3606 hf_srvsvc_maxlinkdelay, NULL);
3608 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3609 hf_srvsvc_minlinkthroughput, NULL);
3611 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3612 hf_srvsvc_linkinfovalidtime, NULL);
3614 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3615 hf_srvsvc_scavqosinfoupdatetime, NULL);
3617 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3618 hf_srvsvc_maxworkitemidletime, NULL);
3624 * IDL typedef struct {
3625 * IDL [string] [unique] wchar_t *comment;
3626 * IDL } SERVER_INFO_1005;
3629 srvsvc_dissect_SERVER_INFO_1005(tvbuff_t *tvb, int offset,
3630 packet_info *pinfo, proto_tree *tree,
3633 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3634 srvsvc_dissect_pointer_UNICODE_STRING, NDR_POINTER_UNIQUE,
3635 "Comment", hf_srvsvc_comment, 0);
3642 * IDL typedef struct {
3644 * IDL } SERVER_INFO_1010;
3647 srvsvc_dissect_SERVER_INFO_1010(tvbuff_t *tvb, int offset,
3648 packet_info *pinfo, proto_tree *tree,
3651 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3652 hf_srvsvc_disc, NULL);
3658 * IDL typedef struct {
3660 * IDL } SERVER_INFO_1016;
3663 srvsvc_dissect_SERVER_INFO_1016(tvbuff_t *tvb, int offset,
3664 packet_info *pinfo, proto_tree *tree,
3667 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3668 hf_srvsvc_hidden, NULL);
3674 * IDL typedef struct {
3675 * IDL long announce;
3676 * IDL } SERVER_INFO_1017;
3679 srvsvc_dissect_SERVER_INFO_1017(tvbuff_t *tvb, int offset,
3680 packet_info *pinfo, proto_tree *tree,
3683 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3684 hf_srvsvc_announce, NULL);
3690 * IDL typedef struct {
3691 * IDL long anndelta;
3692 * IDL } SERVER_INFO_1018;
3695 srvsvc_dissect_SERVER_INFO_1018(tvbuff_t *tvb, int offset,
3696 packet_info *pinfo, proto_tree *tree,
3699 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3700 hf_srvsvc_anndelta, NULL);
3706 * IDL typedef struct {
3708 * IDL } SERVER_INFO_1107;
3711 srvsvc_dissect_SERVER_INFO_1107(tvbuff_t *tvb, int offset,
3712 packet_info *pinfo, proto_tree *tree,
3715 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3716 hf_srvsvc_users, NULL);
3722 * IDL typedef struct {
3723 * IDL long sessopens;
3724 * IDL } SERVER_INFO_1501;
3727 srvsvc_dissect_SERVER_INFO_1501(tvbuff_t *tvb, int offset,
3728 packet_info *pinfo, proto_tree *tree,
3731 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3732 hf_srvsvc_sessopens, NULL);
3738 * IDL typedef struct {
3740 * IDL } SERVER_INFO_1502;
3743 srvsvc_dissect_SERVER_INFO_1502(tvbuff_t *tvb, int offset,
3744 packet_info *pinfo, proto_tree *tree,
3747 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3748 hf_srvsvc_sessvcs, NULL);
3754 * IDL typedef struct {
3755 * IDL long opensearch;
3756 * IDL } SERVER_INFO_1503;
3759 srvsvc_dissect_SERVER_INFO_1503(tvbuff_t *tvb, int offset,
3760 packet_info *pinfo, proto_tree *tree,
3763 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3764 hf_srvsvc_opensearch, NULL);
3770 * IDL typedef struct {
3771 * IDL long maxworkitems;
3772 * IDL } SERVER_INFO_1506;
3775 srvsvc_dissect_SERVER_INFO_1506(tvbuff_t *tvb, int offset,
3776 packet_info *pinfo, proto_tree *tree,
3779 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3780 hf_srvsvc_maxworkitems, NULL);
3786 * IDL typedef struct {
3787 * IDL long maxrawbuflen;
3788 * IDL } SERVER_INFO_1509;
3791 srvsvc_dissect_SERVER_INFO_1509(tvbuff_t *tvb, int offset,
3792 packet_info *pinfo, proto_tree *tree,
3795 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3796 hf_srvsvc_maxrawbuflen, NULL);
3802 * IDL typedef struct {
3803 * IDL long sessusers;
3804 * IDL } SERVER_INFO_1510;
3807 srvsvc_dissect_SERVER_INFO_1510(tvbuff_t *tvb, int offset,
3808 packet_info *pinfo, proto_tree *tree,
3811 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3812 hf_srvsvc_users, NULL);
3818 * IDL typedef struct {
3819 * IDL long sessconns;
3820 * IDL } SERVER_INFO_1511;
3823 srvsvc_dissect_SERVER_INFO_1511(tvbuff_t *tvb, int offset,
3824 packet_info *pinfo, proto_tree *tree,
3827 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3828 hf_srvsvc_connections, NULL);
3834 * IDL typedef struct {
3835 * IDL long maxnonpagedmemoryusage;
3836 * IDL } SERVER_INFO_1512;
3839 srvsvc_dissect_SERVER_INFO_1512(tvbuff_t *tvb, int offset,
3840 packet_info *pinfo, proto_tree *tree,
3843 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3844 hf_srvsvc_maxnonpagedmemoryusage, NULL);
3850 * IDL typedef struct {
3851 * IDL long maxpagedmemoryusage;
3852 * IDL } SERVER_INFO_1513;
3855 srvsvc_dissect_SERVER_INFO_1513(tvbuff_t *tvb, int offset,
3856 packet_info *pinfo, proto_tree *tree,
3859 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3860 hf_srvsvc_maxpagedmemoryusage, NULL);
3866 * IDL typedef struct {
3867 * IDL long enablesoftcompat;
3868 * IDL } SERVER_INFO_1514;
3871 srvsvc_dissect_SERVER_INFO_1514(tvbuff_t *tvb, int offset,
3872 packet_info *pinfo, proto_tree *tree,
3875 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3876 hf_srvsvc_enablesoftcompat, NULL);
3882 * IDL typedef struct {
3883 * IDL long enableforcedlogoff;
3884 * IDL } SERVER_INFO_1515;
3887 srvsvc_dissect_SERVER_INFO_1515(tvbuff_t *tvb, int offset,
3888 packet_info *pinfo, proto_tree *tree,
3891 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3892 hf_srvsvc_enableforcedlogoff, NULL);
3898 * IDL typedef struct {
3899 * IDL long timesource;
3900 * IDL } SERVER_INFO_1516;
3903 srvsvc_dissect_SERVER_INFO_1516(tvbuff_t *tvb, int offset,
3904 packet_info *pinfo, proto_tree *tree,
3907 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3908 hf_srvsvc_timesource, NULL);
3914 * IDL typedef struct {
3915 * IDL long lmannounce;
3916 * IDL } SERVER_INFO_1518;
3919 srvsvc_dissect_SERVER_INFO_1518(tvbuff_t *tvb, int offset,
3920 packet_info *pinfo, proto_tree *tree,
3923 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3924 hf_srvsvc_lmannounce, NULL);
3930 * IDL typedef struct {
3931 * IDL long maxcopyreadlen;
3932 * IDL } SERVER_INFO_1520;
3935 srvsvc_dissect_SERVER_INFO_1520(tvbuff_t *tvb, int offset,
3936 packet_info *pinfo, proto_tree *tree,
3939 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3940 hf_srvsvc_maxcopyreadlen, NULL);
3946 * IDL typedef struct {
3947 * IDL long maxcopywritelen;
3948 * IDL } SERVER_INFO_1521;
3951 srvsvc_dissect_SERVER_INFO_1521(tvbuff_t *tvb, int offset,
3952 packet_info *pinfo, proto_tree *tree,
3955 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3956 hf_srvsvc_maxcopywritelen, NULL);
3962 * IDL typedef struct {
3963 * IDL long minkeepsearch;
3964 * IDL } SERVER_INFO_1522;
3967 srvsvc_dissect_SERVER_INFO_1522(tvbuff_t *tvb, int offset,
3968 packet_info *pinfo, proto_tree *tree,
3971 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3972 hf_srvsvc_minkeepsearch, NULL);
3978 * IDL typedef struct {
3979 * IDL long maxkeepsearch;
3980 * IDL } SERVER_INFO_1523;
3983 srvsvc_dissect_SERVER_INFO_1523(tvbuff_t *tvb, int offset,
3984 packet_info *pinfo, proto_tree *tree,
3987 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3988 hf_srvsvc_maxkeepsearch, NULL);
3994 * IDL typedef struct {
3995 * IDL long minkeepcomplsearch;
3996 * IDL } SERVER_INFO_1524;
3999 srvsvc_dissect_SERVER_INFO_1524(tvbuff_t *tvb, int offset,
4000 packet_info *pinfo, proto_tree *tree,
4003 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4004 hf_srvsvc_minkeepcomplsearch, NULL);
4010 * IDL typedef struct {
4011 * IDL long maxkeepcomplsearch;
4012 * IDL } SERVER_INFO_1525;
4015 srvsvc_dissect_SERVER_INFO_1525(tvbuff_t *tvb, int offset,
4016 packet_info *pinfo, proto_tree *tree,
4019 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4020 hf_srvsvc_maxkeepcomplsearch, NULL);
4026 * IDL typedef struct {
4027 * IDL long scavtimeout;
4028 * IDL } SERVER_INFO_1528;
4031 srvsvc_dissect_SERVER_INFO_1528(tvbuff_t *tvb, int offset,
4032 packet_info *pinfo, proto_tree *tree,
4035 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4036 hf_srvsvc_scavtimeout, NULL);
4042 * IDL typedef struct {
4043 * IDL long minrcvqueue;
4044 * IDL } SERVER_INFO_1529;
4047 srvsvc_dissect_SERVER_INFO_1529(tvbuff_t *tvb, int offset,
4048 packet_info *pinfo, proto_tree *tree,
4051 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4052 hf_srvsvc_minrcvqueue, NULL);
4058 * IDL typedef struct {
4059 * IDL long minfreeworkitems;
4060 * IDL } SERVER_INFO_1530;
4063 srvsvc_dissect_SERVER_INFO_1530(tvbuff_t *tvb, int offset,
4064 packet_info *pinfo, proto_tree *tree,
4067 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4068 hf_srvsvc_minfreeworkitems, NULL);
4074 * IDL typedef struct {
4075 * IDL long maxmpxct;
4076 * IDL } SERVER_INFO_1533;
4079 srvsvc_dissect_SERVER_INFO_1533(tvbuff_t *tvb, int offset,
4080 packet_info *pinfo, proto_tree *tree,
4083 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4084 hf_srvsvc_maxmpxct, NULL);
4090 * IDL typedef struct {
4091 * IDL long oplockbreakwait;
4092 * IDL } SERVER_INFO_1534;
4095 srvsvc_dissect_SERVER_INFO_1534(tvbuff_t *tvb, int offset,
4096 packet_info *pinfo, proto_tree *tree,
4099 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4100 hf_srvsvc_oplockbreakwait, NULL);
4106 * IDL typedef struct {
4107 * IDL long oplockbreakresponsewait;
4108 * IDL } SERVER_INFO_1535;
4111 srvsvc_dissect_SERVER_INFO_1535(tvbuff_t *tvb, int offset,
4112 packet_info *pinfo, proto_tree *tree,
4115 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4116 hf_srvsvc_oplockbreakresponsewait, NULL);
4122 * IDL typedef struct {
4123 * IDL long enableoplocks;
4124 * IDL } SERVER_INFO_1536;
4127 srvsvc_dissect_SERVER_INFO_1536(tvbuff_t *tvb, int offset,
4128 packet_info *pinfo, proto_tree *tree,
4131 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4132 hf_srvsvc_enableoplocks, NULL);
4138 * IDL typedef struct {
4139 * IDL long enableoplockforceclose;
4140 * IDL } SERVER_INFO_1537;
4143 srvsvc_dissect_SERVER_INFO_1537(tvbuff_t *tvb, int offset,
4144 packet_info *pinfo, proto_tree *tree,
4147 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4148 hf_srvsvc_enableoplockforceclose, NULL);
4154 * IDL typedef struct {
4155 * IDL long enablefcbopens;
4156 * IDL } SERVER_INFO_1538;
4159 srvsvc_dissect_SERVER_INFO_1538(tvbuff_t *tvb, int offset,
4160 packet_info *pinfo, proto_tree *tree,
4163 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4164 hf_srvsvc_enablefcbopens, NULL);
4170 * IDL typedef struct {
4171 * IDL long enableraw;
4172 * IDL } SERVER_INFO_1539;
4175 srvsvc_dissect_SERVER_INFO_1539(tvbuff_t *tvb, int offset,
4176 packet_info *pinfo, proto_tree *tree,
4179 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4180 hf_srvsvc_enableraw, NULL);
4186 * IDL typedef struct {
4187 * IDL long enablesharednetdrives;
4188 * IDL } SERVER_INFO_1540;
4191 srvsvc_dissect_SERVER_INFO_1540(tvbuff_t *tvb, int offset,
4192 packet_info *pinfo, proto_tree *tree,
4195 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4196 hf_srvsvc_enablesharednetdrives, NULL);
4202 * IDL typedef struct {
4203 * IDL long minfreeconnections;
4204 * IDL } SERVER_INFO_1541;
4207 srvsvc_dissect_SERVER_INFO_1541(tvbuff_t *tvb, int offset,
4208 packet_info *pinfo, proto_tree *tree,
4211 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4212 hf_srvsvc_minfreeconnections, NULL);
4218 * IDL typedef struct {
4219 * IDL long maxfreeconnections;
4220 * IDL } SERVER_INFO_1542;
4223 srvsvc_dissect_SERVER_INFO_1542(tvbuff_t *tvb, int offset,
4224 packet_info *pinfo, proto_tree *tree,
4227 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4228 hf_srvsvc_maxfreeconnections, NULL);
4234 * IDL typedef struct {
4235 * IDL long initsesstable;
4236 * IDL } SERVER_INFO_1543;
4239 srvsvc_dissect_SERVER_INFO_1543(tvbuff_t *tvb, int offset,
4240 packet_info *pinfo, proto_tree *tree,
4243 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4244 hf_srvsvc_initsesstable, NULL);
4250 * IDL typedef struct {
4251 * IDL long initconntable;
4252 * IDL } SERVER_INFO_1544;
4255 srvsvc_dissect_SERVER_INFO_1544(tvbuff_t *tvb, int offset,
4256 packet_info *pinfo, proto_tree *tree,
4259 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4260 hf_srvsvc_initconntable, NULL);
4266 * IDL typedef struct {
4267 * IDL long initfiletable;
4268 * IDL } SERVER_INFO_1545;
4271 srvsvc_dissect_SERVER_INFO_1545(tvbuff_t *tvb, int offset,
4272 packet_info *pinfo, proto_tree *tree,
4275 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4276 hf_srvsvc_initfiletable, NULL);
4282 * IDL typedef struct {
4283 * IDL long initsearchtable;
4284 * IDL } SERVER_INFO_1546;
4287 srvsvc_dissect_SERVER_INFO_1546(tvbuff_t *tvb, int offset,
4288 packet_info *pinfo, proto_tree *tree,
4291 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4292 hf_srvsvc_initsearchtable, NULL);
4298 * IDL typedef struct {
4299 * IDL long alertsched;
4300 * IDL } SERVER_INFO_1547;
4303 srvsvc_dissect_SERVER_INFO_1547(tvbuff_t *tvb, int offset,
4304 packet_info *pinfo, proto_tree *tree,
4307 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4308 hf_srvsvc_alertsched, NULL);
4314 * IDL typedef struct {
4315 * IDL long errortreshold;
4316 * IDL } SERVER_INFO_1548;
4319 srvsvc_dissect_SERVER_INFO_1548(tvbuff_t *tvb, int offset,
4320 packet_info *pinfo, proto_tree *tree,
4323 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4324 hf_srvsvc_errortreshold, NULL);
4330 * IDL typedef struct {
4331 * IDL long networkerrortreshold;
4332 * IDL } SERVER_INFO_1549;
4335 srvsvc_dissect_SERVER_INFO_1549(tvbuff_t *tvb, int offset,
4336 packet_info *pinfo, proto_tree *tree,
4339 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4340 hf_srvsvc_networkerrortreshold, NULL);
4346 * IDL typedef struct {
4347 * IDL long diskspacetreshold;
4348 * IDL } SERVER_INFO_1550;
4351 srvsvc_dissect_SERVER_INFO_1550(tvbuff_t *tvb, int offset,
4352 packet_info *pinfo, proto_tree *tree,
4355 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4356 hf_srvsvc_diskspacetreshold, NULL);
4362 * IDL typedef struct {
4363 * IDL long maxlinkdelay;
4364 * IDL } SERVER_INFO_1552;
4367 srvsvc_dissect_SERVER_INFO_1552(tvbuff_t *tvb, int offset,
4368 packet_info *pinfo, proto_tree *tree,
4371 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4372 hf_srvsvc_maxlinkdelay, NULL);
4378 * IDL typedef struct {
4379 * IDL long minlinkthroughput;
4380 * IDL } SERVER_INFO_1553;
4383 srvsvc_dissect_SERVER_INFO_1553(tvbuff_t *tvb, int offset,
4384 packet_info *pinfo, proto_tree *tree,
4387 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4388 hf_srvsvc_minlinkthroughput, NULL);
4394 * IDL typedef struct {
4395 * IDL long linkinfovalidtime;
4396 * IDL } SERVER_INFO_1554;
4399 srvsvc_dissect_SERVER_INFO_1554(tvbuff_t *tvb, int offset,
4400 packet_info *pinfo, proto_tree *tree,
4403 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4404 hf_srvsvc_linkinfovalidtime, NULL);
4410 * IDL typedef struct {
4411 * IDL long scavqosinfoupdatetime;
4412 * IDL } SERVER_INFO_1555;
4415 srvsvc_dissect_SERVER_INFO_1555(tvbuff_t *tvb, int offset,
4416 packet_info *pinfo, proto_tree *tree,
4419 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4420 hf_srvsvc_scavqosinfoupdatetime, NULL);
4426 * IDL typedef struct {
4427 * IDL long maxworkitemidletime;
4428 * IDL } SERVER_INFO_1556;
4431 srvsvc_dissect_SERVER_INFO_1556(tvbuff_t *tvb, int offset,
4432 packet_info *pinfo, proto_tree *tree,
4435 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4436 hf_srvsvc_maxworkitemidletime, NULL);
4442 * IDL typedef [switch_type(long)] union {
4443 * IDL [case(100)] [unique] SERVER_INFO_100 *srv100;
4444 * IDL [case(101)] [unique] SERVER_INFO_101 *srv101;
4445 * IDL [case(102)] [unique] SERVER_INFO_102 *srv102;
4446 * IDL [case(402)] [unique] SERVER_INFO_402 *srv402;
4447 * IDL [case(403)] [unique] SERVER_INFO_403 *srv403;
4448 * IDL [case(502)] [unique] SERVER_INFO_502 *srv502;
4449 * IDL [case(503)] [unique] SERVER_INFO_503 *srv503;
4450 * IDL [case(599)] [unique] SERVER_INFO_599 *srv599;
4451 * IDL [case(1005)] [unique] SERVER_INFO_1005 *srv1005;
4452 * IDL [case(1010)] [unique] SERVER_INFO_1010 *srv1010;
4453 * IDL [case(1016)] [unique] SERVER_INFO_1016 *srv1016;
4454 * IDL [case(1017)] [unique] SERVER_INFO_1017 *srv1017;
4455 * IDL [case(1018)] [unique] SERVER_INFO_1018 *srv1018;
4456 * IDL [case(1107)] [unique] SERVER_INFO_1107 *srv1107;
4457 * IDL [case(1501)] [unique] SERVER_INFO_1501 *srv1501;
4458 * IDL [case(1502)] [unique] SERVER_INFO_1502 *srv1502;
4459 * IDL [case(1503)] [unique] SERVER_INFO_1503 *srv1503;
4460 * IDL [case(1506)] [unique] SERVER_INFO_1506 *srv1506;
4461 * IDL [case(1509)] [unique] SERVER_INFO_1509 *srv1509;
4462 * IDL [case(1510)] [unique] SERVER_INFO_1510 *srv1510;
4463 * IDL [case(1511)] [unique] SERVER_INFO_1511 *srv1511;
4464 * IDL [case(1512)] [unique] SERVER_INFO_1512 *srv1512;
4465 * IDL [case(1513)] [unique] SERVER_INFO_1513 *srv1513;
4466 * IDL [case(1514)] [unique] SERVER_INFO_1514 *srv1514;
4467 * IDL [case(1515)] [unique] SERVER_INFO_1515 *srv1515;
4468 * IDL [case(1516)] [unique] SERVER_INFO_1516 *srv1516;
4469 * IDL [case(1518)] [unique] SERVER_INFO_1518 *srv1518;
4470 * IDL [case(1520)] [unique] SERVER_INFO_1520 *srv1520;
4471 * IDL [case(1521)] [unique] SERVER_INFO_1521 *srv1521;
4472 * IDL [case(1522)] [unique] SERVER_INFO_1522 *srv1522;
4473 * IDL [case(1523)] [unique] SERVER_INFO_1523 *srv1523;
4474 * IDL [case(1524)] [unique] SERVER_INFO_1524 *srv1524;
4475 * IDL [case(1525)] [unique] SERVER_INFO_1525 *srv1525;
4476 * IDL [case(1528)] [unique] SERVER_INFO_1528 *srv1528;
4477 * IDL [case(1529)] [unique] SERVER_INFO_1529 *srv1529;
4478 * IDL [case(1530)] [unique] SERVER_INFO_1530 *srv1530;
4479 * IDL [case(1533)] [unique] SERVER_INFO_1533 *srv1533;
4480 * IDL [case(1534)] [unique] SERVER_INFO_1534 *srv1534;
4481 * IDL [case(1535)] [unique] SERVER_INFO_1535 *srv1535;
4482 * IDL [case(1536)] [unique] SERVER_INFO_1536 *srv1536;
4483 * IDL [case(1537)] [unique] SERVER_INFO_1537 *srv1537;
4484 * IDL [case(1538)] [unique] SERVER_INFO_1538 *srv1538;
4485 * IDL [case(1539)] [unique] SERVER_INFO_1539 *srv1539;
4486 * IDL [case(1540)] [unique] SERVER_INFO_1540 *srv1540;
4487 * IDL [case(1541)] [unique] SERVER_INFO_1541 *srv1541;
4488 * IDL [case(1542)] [unique] SERVER_INFO_1542 *srv1542;
4489 * IDL [case(1543)] [unique] SERVER_INFO_1543 *srv1543;
4490 * IDL [case(1544)] [unique] SERVER_INFO_1544 *srv1544;
4491 * IDL [case(1545)] [unique] SERVER_INFO_1545 *srv1545;
4492 * IDL [case(1546)] [unique] SERVER_INFO_1546 *srv1546;
4493 * IDL [case(1547)] [unique] SERVER_INFO_1547 *srv1547;
4494 * IDL [case(1548)] [unique] SERVER_INFO_1548 *srv1548;
4495 * IDL [case(1549)] [unique] SERVER_INFO_1549 *srv1549;
4496 * IDL [case(1550)] [unique] SERVER_INFO_1550 *srv1550;
4497 * IDL [case(1552)] [unique] SERVER_INFO_1552 *srv1552;
4498 * IDL [case(1553)] [unique] SERVER_INFO_1553 *srv1553;
4499 * IDL [case(1554)] [unique] SERVER_INFO_1554 *srv1554;
4500 * IDL [case(1555)] [unique] SERVER_INFO_1555 *srv1555;
4501 * IDL [case(1556)] [unique] SERVER_INFO_1556 *srv1556;
4502 * IDL } SERVER_INFO_UNION;
4505 srvsvc_dissect_SERVER_INFO_UNION(tvbuff_t *tvb, int offset,
4506 packet_info *pinfo, proto_tree *tree,
4513 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_info_level, &level);
4517 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4518 srvsvc_dissect_SERVER_INFO_100,
4519 NDR_POINTER_UNIQUE, "SERVER_INFO_100:",
4524 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4525 srvsvc_dissect_SERVER_INFO_101,
4526 NDR_POINTER_UNIQUE, "SERVER_INFO_101:",
4531 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4532 srvsvc_dissect_SERVER_INFO_102,
4533 NDR_POINTER_UNIQUE, "SERVER_INFO_102:",
4538 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4539 srvsvc_dissect_SERVER_INFO_402,
4540 NDR_POINTER_UNIQUE, "SERVER_INFO_402:",
4545 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4546 srvsvc_dissect_SERVER_INFO_403,
4547 NDR_POINTER_UNIQUE, "SERVER_INFO_403:",
4552 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4553 srvsvc_dissect_SERVER_INFO_502,
4554 NDR_POINTER_UNIQUE, "SERVER_INFO_502:",
4559 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4560 srvsvc_dissect_SERVER_INFO_503,
4561 NDR_POINTER_UNIQUE, "SERVER_INFO_503:",
4566 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4567 srvsvc_dissect_SERVER_INFO_599,
4568 NDR_POINTER_UNIQUE, "SERVER_INFO_599:",
4573 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4574 srvsvc_dissect_SERVER_INFO_1005,
4575 NDR_POINTER_UNIQUE, "SERVER_INFO_1005:",
4580 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4581 srvsvc_dissect_SERVER_INFO_1010,
4582 NDR_POINTER_UNIQUE, "SERVER_INFO_1010:",
4587 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4588 srvsvc_dissect_SERVER_INFO_1016,
4589 NDR_POINTER_UNIQUE, "SERVER_INFO_1016:",
4594 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4595 srvsvc_dissect_SERVER_INFO_1017,
4596 NDR_POINTER_UNIQUE, "SERVER_INFO_1017:",
4601 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4602 srvsvc_dissect_SERVER_INFO_1018,
4603 NDR_POINTER_UNIQUE, "SERVER_INFO_1018:",
4608 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4609 srvsvc_dissect_SERVER_INFO_1107,
4610 NDR_POINTER_UNIQUE, "SERVER_INFO_1107:",
4615 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4616 srvsvc_dissect_SERVER_INFO_1501,
4617 NDR_POINTER_UNIQUE, "SERVER_INFO_1501:",
4622 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4623 srvsvc_dissect_SERVER_INFO_1502,
4624 NDR_POINTER_UNIQUE, "SERVER_INFO_1502:",
4629 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4630 srvsvc_dissect_SERVER_INFO_1503,
4631 NDR_POINTER_UNIQUE, "SERVER_INFO_1503:",
4636 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4637 srvsvc_dissect_SERVER_INFO_1506,
4638 NDR_POINTER_UNIQUE, "SERVER_INFO_1506:",
4643 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4644 srvsvc_dissect_SERVER_INFO_1509,
4645 NDR_POINTER_UNIQUE, "SERVER_INFO_1509:",
4650 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4651 srvsvc_dissect_SERVER_INFO_1510,
4652 NDR_POINTER_UNIQUE, "SERVER_INFO_1510:",
4657 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4658 srvsvc_dissect_SERVER_INFO_1511,
4659 NDR_POINTER_UNIQUE, "SERVER_INFO_1511:",
4664 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4665 srvsvc_dissect_SERVER_INFO_1512,
4666 NDR_POINTER_UNIQUE, "SERVER_INFO_1512:",
4671 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4672 srvsvc_dissect_SERVER_INFO_1513,
4673 NDR_POINTER_UNIQUE, "SERVER_INFO_1513:",
4678 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4679 srvsvc_dissect_SERVER_INFO_1514,
4680 NDR_POINTER_UNIQUE, "SERVER_INFO_1514:",
4685 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4686 srvsvc_dissect_SERVER_INFO_1515,
4687 NDR_POINTER_UNIQUE, "SERVER_INFO_1515:",
4692 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4693 srvsvc_dissect_SERVER_INFO_1516,
4694 NDR_POINTER_UNIQUE, "SERVER_INFO_1516:",
4699 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4700 srvsvc_dissect_SERVER_INFO_1518,
4701 NDR_POINTER_UNIQUE, "SERVER_INFO_1518:",
4706 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4707 srvsvc_dissect_SERVER_INFO_1520,
4708 NDR_POINTER_UNIQUE, "SERVER_INFO_1520:",
4713 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4714 srvsvc_dissect_SERVER_INFO_1521,
4715 NDR_POINTER_UNIQUE, "SERVER_INFO_1521:",
4720 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4721 srvsvc_dissect_SERVER_INFO_1522,
4722 NDR_POINTER_UNIQUE, "SERVER_INFO_1522:",
4727 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4728 srvsvc_dissect_SERVER_INFO_1523,
4729 NDR_POINTER_UNIQUE, "SERVER_INFO_1523:",
4734 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4735 srvsvc_dissect_SERVER_INFO_1524,
4736 NDR_POINTER_UNIQUE, "SERVER_INFO_1524:",
4741 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4742 srvsvc_dissect_SERVER_INFO_1525,
4743 NDR_POINTER_UNIQUE, "SERVER_INFO_1525:",
4748 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4749 srvsvc_dissect_SERVER_INFO_1528,
4750 NDR_POINTER_UNIQUE, "SERVER_INFO_1528:",
4755 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4756 srvsvc_dissect_SERVER_INFO_1529,
4757 NDR_POINTER_UNIQUE, "SERVER_INFO_1529:",
4762 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4763 srvsvc_dissect_SERVER_INFO_1530,
4764 NDR_POINTER_UNIQUE, "SERVER_INFO_1530:",
4769 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4770 srvsvc_dissect_SERVER_INFO_1533,
4771 NDR_POINTER_UNIQUE, "SERVER_INFO_1533:",
4776 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4777 srvsvc_dissect_SERVER_INFO_1534,
4778 NDR_POINTER_UNIQUE, "SERVER_INFO_1534:",
4783 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4784 srvsvc_dissect_SERVER_INFO_1535,
4785 NDR_POINTER_UNIQUE, "SERVER_INFO_1535:",
4790 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4791 srvsvc_dissect_SERVER_INFO_1536,
4792 NDR_POINTER_UNIQUE, "SERVER_INFO_1536:",
4797 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4798 srvsvc_dissect_SERVER_INFO_1537,
4799 NDR_POINTER_UNIQUE, "SERVER_INFO_1537:",
4804 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4805 srvsvc_dissect_SERVER_INFO_1538,
4806 NDR_POINTER_UNIQUE, "SERVER_INFO_1538:",
4811 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4812 srvsvc_dissect_SERVER_INFO_1539,
4813 NDR_POINTER_UNIQUE, "SERVER_INFO_1539:",
4818 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4819 srvsvc_dissect_SERVER_INFO_1540,
4820 NDR_POINTER_UNIQUE, "SERVER_INFO_1540:",
4825 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4826 srvsvc_dissect_SERVER_INFO_1541,
4827 NDR_POINTER_UNIQUE, "SERVER_INFO_1541:",
4832 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4833 srvsvc_dissect_SERVER_INFO_1542,
4834 NDR_POINTER_UNIQUE, "SERVER_INFO_1542:",
4839 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4840 srvsvc_dissect_SERVER_INFO_1543,
4841 NDR_POINTER_UNIQUE, "SERVER_INFO_1543:",
4846 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4847 srvsvc_dissect_SERVER_INFO_1544,
4848 NDR_POINTER_UNIQUE, "SERVER_INFO_1544:",
4853 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4854 srvsvc_dissect_SERVER_INFO_1545,
4855 NDR_POINTER_UNIQUE, "SERVER_INFO_1545:",
4860 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4861 srvsvc_dissect_SERVER_INFO_1546,
4862 NDR_POINTER_UNIQUE, "SERVER_INFO_1546:",
4867 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4868 srvsvc_dissect_SERVER_INFO_1547,
4869 NDR_POINTER_UNIQUE, "SERVER_INFO_1547:",
4874 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4875 srvsvc_dissect_SERVER_INFO_1548,
4876 NDR_POINTER_UNIQUE, "SERVER_INFO_1548:",
4881 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4882 srvsvc_dissect_SERVER_INFO_1549,
4883 NDR_POINTER_UNIQUE, "SERVER_INFO_1549:",
4888 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4889 srvsvc_dissect_SERVER_INFO_1550,
4890 NDR_POINTER_UNIQUE, "SERVER_INFO_1550:",
4895 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4896 srvsvc_dissect_SERVER_INFO_1552,
4897 NDR_POINTER_UNIQUE, "SERVER_INFO_1552:",
4902 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4903 srvsvc_dissect_SERVER_INFO_1553,
4904 NDR_POINTER_UNIQUE, "SERVER_INFO_1553:",
4909 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4910 srvsvc_dissect_SERVER_INFO_1554,
4911 NDR_POINTER_UNIQUE, "SERVER_INFO_1554:",
4916 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4917 srvsvc_dissect_SERVER_INFO_1555,
4918 NDR_POINTER_UNIQUE, "SERVER_INFO_1555:",
4923 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4924 srvsvc_dissect_SERVER_INFO_1556,
4925 NDR_POINTER_UNIQUE, "SERVER_INFO_1556:",
4935 * IDL long NetrServerGetInfo(
4936 * IDL [in] [string] [unique] wchar_t *ServerName,
4937 * IDL [in] long Level,
4938 * IDL [out] [ref] SERVER_INFO_UNION *srv;
4942 srvsvc_dissect_netrservergetinfo_rqst(tvbuff_t *tvb, int offset,
4943 packet_info *pinfo, proto_tree *tree,
4946 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4947 srvsvc_dissect_pointer_UNICODE_STRING,
4948 NDR_POINTER_UNIQUE, "Server",
4949 hf_srvsvc_server, 0);
4951 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4952 hf_srvsvc_info_level, 0);
4957 srvsvc_dissect_netrservergetinfo_reply(tvbuff_t *tvb, int offset,
4958 packet_info *pinfo, proto_tree *tree,
4961 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4962 srvsvc_dissect_SERVER_INFO_UNION,
4963 NDR_POINTER_REF, "Server Info",
4966 offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
4967 hf_srvsvc_rc, NULL);
4972 /* XXX dont know the out parameters. only the in parameters.
4974 * IDL long NetrServerSetInfo(
4975 * IDL [in] [string] [unique] wchar_t *ServerName,
4976 * IDL [in] long Level,
4977 * IDL [in] [ref] SERVER_INFO_UNION *srv;
4978 * IDL [in] [unique] long *ParamError;
4982 srvsvc_dissect_netrserversetinfo_rqst(tvbuff_t *tvb, int offset,
4983 packet_info *pinfo, proto_tree *tree,
4986 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4987 srvsvc_dissect_pointer_UNICODE_STRING,
4988 NDR_POINTER_UNIQUE, "Server",
4989 hf_srvsvc_server, 0);
4991 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4992 hf_srvsvc_info_level, 0);
4994 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4995 srvsvc_dissect_SERVER_INFO_UNION,
4996 NDR_POINTER_REF, "Server Info",
4999 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5000 srvsvc_dissect_pointer_long, NDR_POINTER_UNIQUE,
5001 "Parameter Error:", hf_srvsvc_parm_error, 0);
5007 * IDL typedef struct {
5008 * IDL [size_is()] [unique] wchar_t *disk;
5009 * IDL } DISK_INFO_0;
5012 srvsvc_dissect_DISK_INFO_0(tvbuff_t *tvb, int offset,
5013 packet_info *pinfo, proto_tree *tree,
5022 di=pinfo->private_data;
5023 if(di->conformant_run){
5024 /* this call is to make ethereal eat the array header for the conformant run */
5025 offset =dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, NULL);
5029 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5030 hf_srvsvc_disk_name_len, &len);
5033 offset = prs_uint16s(tvb, offset, pinfo, tree, len, &data16_offset,
5035 text = fake_unicode(tvb, data16_offset, len);
5037 proto_tree_add_string(tree, hf_srvsvc_disk_name, tvb, old_offset,
5038 offset-old_offset, text);
5044 srvsvc_dissect_DISK_INFO_0_array(tvbuff_t *tvb, int offset,
5045 packet_info *pinfo, proto_tree *tree,
5048 offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep,
5049 srvsvc_dissect_DISK_INFO_0);
5055 * IDL typedef struct {
5056 * IDL long EntriesRead;
5057 * IDL [length_is(EntriesRead)] [size_is(EntriesRead)] [unique] DISK_INFO_0 *disk;
5058 * IDL } DISK_ENUM_CONTAINER;
5061 srvsvc_dissect_DISK_ENUM_CONTAINER(tvbuff_t *tvb, int offset,
5062 packet_info *pinfo, proto_tree *tree,
5065 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5066 hf_srvsvc_num_entries, NULL);
5068 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5069 srvsvc_dissect_DISK_INFO_0_array, NDR_POINTER_UNIQUE,
5070 "DISK_INFO_0 array:", -1, 0);
5076 /* XXX dont know the out parameters. only the in parameters.
5078 * IDL long NetrServerDiskEnum(
5079 * IDL [in] [string] [unique] wchar_t *ServerName,
5080 * IDL [in] long Level,
5081 * IDL [in] [ref] DISK_ENUM_CONTAINER *disk;
5082 * IDL [in] long maxlen,
5083 * IDL [in] [unique] long *resumehandle,
5087 srvsvc_dissect_netrserverdiskenum_rqst(tvbuff_t *tvb, int offset,
5088 packet_info *pinfo, proto_tree *tree,
5091 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5092 srvsvc_dissect_pointer_UNICODE_STRING,
5093 NDR_POINTER_UNIQUE, "Server",
5094 hf_srvsvc_server, 0);
5096 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5097 hf_srvsvc_info_level, 0);
5099 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5100 srvsvc_dissect_DISK_ENUM_CONTAINER,
5101 NDR_POINTER_REF, "Disks",
5104 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5105 hf_srvsvc_preferred_len, 0);
5107 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5108 srvsvc_dissect_ENUM_HANDLE,
5109 NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
5114 /* XXX dont know the out parameters. only the in parameters.
5116 * IDL long NetrServerStatisticsGet(
5117 * IDL [in] [string] [unique] wchar_t *ServerName,
5118 * IDL [in] [string] [unique] wchar_t *Service,
5119 * IDL [in] long Level,
5120 * IDL [in] long Options,
5124 srvsvc_dissect_netrserverstatisticsget_rqst(tvbuff_t *tvb, int offset,
5125 packet_info *pinfo, proto_tree *tree,
5128 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5129 srvsvc_dissect_pointer_UNICODE_STRING,
5130 NDR_POINTER_UNIQUE, "Server",
5131 hf_srvsvc_server, 0);
5133 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5134 srvsvc_dissect_pointer_UNICODE_STRING,
5135 NDR_POINTER_UNIQUE, "Service",
5136 hf_srvsvc_service, 0);
5138 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5139 hf_srvsvc_info_level, 0);
5141 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5142 hf_srvsvc_service_options, 0);
5149 * IDL typedef struct {
5150 * IDL [size_is(transportaddresslen)] char transportaddress;
5151 * IDL } TRANSPORT_ADDRESS;
5154 srvsvc_dissect_TRANSPORT_ADDRESS(tvbuff_t *tvb, int offset,
5155 packet_info *pinfo, proto_tree *tree,
5161 di=pinfo->private_data;
5162 if(di->conformant_run){
5163 /*just a run to handle conformant arrays, nothing to dissect */
5167 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5168 hf_srvsvc_transport_address_len, &len);
5170 proto_tree_add_item(tree, hf_srvsvc_transport_address, tvb, offset,
5178 * IDL typedef struct {
5179 * IDL long numberofvcs;
5180 * IDL [string] [unique] transportname;
5181 * IDL [unique] TRANSPORT_ADDRESS *transportaddress;
5182 * IDL long transportaddresslen;
5183 * IDL [string] [unique] wchar_t *networkaddress;
5184 * IDL } TRANSPORT_INFO_0;
5187 srvsvc_dissect_TRANSPORT_INFO_0(tvbuff_t *tvb, int offset,
5188 packet_info *pinfo, proto_tree *tree,
5191 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5192 hf_srvsvc_transport_numberofvcs, 0);
5194 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5195 srvsvc_dissect_pointer_UNICODE_STRING,
5196 NDR_POINTER_UNIQUE, "Name",
5197 hf_srvsvc_transport_name, 0);
5199 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5200 srvsvc_dissect_TRANSPORT_ADDRESS,
5201 NDR_POINTER_UNIQUE, "Transport Address",
5204 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5205 hf_srvsvc_transport_address_len, 0);
5207 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5208 srvsvc_dissect_pointer_UNICODE_STRING,
5209 NDR_POINTER_UNIQUE, "Network Address",
5210 hf_srvsvc_transport_networkaddress, 0);
5215 srvsvc_dissect_TRANSPORT_INFO_0_array(tvbuff_t *tvb, int offset,
5216 packet_info *pinfo, proto_tree *tree,
5219 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
5220 srvsvc_dissect_TRANSPORT_INFO_0);
5226 * IDL typedef struct {
5227 * IDL long EntriesRead;
5228 * IDL [size_is(EntriesRead)] [unique] TRANSPORT_INFO_0 *trans;
5229 * IDL } SERVER_XPORT_INFO_0_CONTAINER;
5232 srvsvc_dissect_SERVER_XPORT_INFO_0_CONTAINER(tvbuff_t *tvb, int offset,
5233 packet_info *pinfo, proto_tree *tree,
5236 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5237 hf_srvsvc_num_entries, NULL);
5239 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5240 srvsvc_dissect_TRANSPORT_INFO_0_array, NDR_POINTER_UNIQUE,
5241 "TRANSPORT_INFO_0 array:", -1, 0);
5247 * IDL typedef struct {
5248 * IDL long numberofvcs;
5249 * IDL [string] [unique] transportname;
5250 * IDL [unique] TRANSPORT_ADDRESS *transportaddress;
5251 * IDL long transportaddresslen;
5252 * IDL [string] [unique] wchar_t *networkaddress;
5253 * IDL } TRANSPORT_INFO_1;
5256 srvsvc_dissect_TRANSPORT_INFO_1(tvbuff_t *tvb, int offset,
5257 packet_info *pinfo, proto_tree *tree,
5260 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5261 hf_srvsvc_transport_numberofvcs, 0);
5263 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5264 srvsvc_dissect_pointer_UNICODE_STRING,
5265 NDR_POINTER_UNIQUE, "Name",
5266 hf_srvsvc_transport_name, 0);
5268 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5269 srvsvc_dissect_TRANSPORT_ADDRESS,
5270 NDR_POINTER_UNIQUE, "Transport Address",
5273 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5274 hf_srvsvc_transport_address_len, 0);
5276 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5277 srvsvc_dissect_pointer_UNICODE_STRING,
5278 NDR_POINTER_UNIQUE, "Network Address",
5279 hf_srvsvc_transport_networkaddress, 0);
5281 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5282 srvsvc_dissect_pointer_UNICODE_STRING,
5283 NDR_POINTER_UNIQUE, "Domain",
5284 hf_srvsvc_domain, 0);
5289 srvsvc_dissect_TRANSPORT_INFO_1_array(tvbuff_t *tvb, int offset,
5290 packet_info *pinfo, proto_tree *tree,
5293 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
5294 srvsvc_dissect_TRANSPORT_INFO_1);
5300 * IDL typedef struct {
5301 * IDL long EntriesRead;
5302 * IDL [size_is(EntriesRead)] [unique] TRANSPORT_INFO_1 *trans;
5303 * IDL } SERVER_XPORT_INFO_1_CONTAINER;
5306 srvsvc_dissect_SERVER_XPORT_INFO_1_CONTAINER(tvbuff_t *tvb, int offset,
5307 packet_info *pinfo, proto_tree *tree,
5310 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5311 hf_srvsvc_num_entries, NULL);
5313 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5314 srvsvc_dissect_TRANSPORT_INFO_1_array, NDR_POINTER_UNIQUE,
5315 "TRANSPORT_INFO_1 array:", -1, 0);
5322 * IDL typedef [switch_type(long)] union {
5323 * IDL [case(0)] [unique] SERVER_XPORT_INFO_0_CONTAINER *xp0;
5324 * IDL [case(1)] [unique] SERVER_XPORT_INFO_1_CONTAINER *xp1;
5325 * IDL } SERVER_XPORT_ENUM_UNION;
5328 srvsvc_dissect_SERVER_XPORT_ENUM_UNION(tvbuff_t *tvb, int offset,
5329 packet_info *pinfo, proto_tree *tree,
5336 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_info_level, &level);
5340 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5341 srvsvc_dissect_SERVER_XPORT_INFO_0_CONTAINER,
5342 NDR_POINTER_UNIQUE, "SERVER_XPORT_INFO_0_CONTAINER:",
5346 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5347 srvsvc_dissect_SERVER_XPORT_INFO_1_CONTAINER,
5348 NDR_POINTER_UNIQUE, "SERVER_XPORT_INFO_1_CONTAINER:",
5357 * IDL typedef struct {
5359 * IDL SERVER_XPORT_ENUM_UNION xport;
5360 * IDL } SERVER_XPORT_ENUM_STRUCT;
5363 srvsvc_dissect_SERVER_XPORT_ENUM_STRUCT(tvbuff_t *tvb, int offset,
5364 packet_info *pinfo, proto_tree *tree,
5367 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5368 hf_srvsvc_info_level, 0);
5370 offset = srvsvc_dissect_SERVER_XPORT_ENUM_UNION(tvb, offset,
5377 /* XXX dont know the out parameters. only the in parameters.
5379 * IDL long NetrServerTransportAdd(
5380 * IDL [in] [string] [unique] wchar_t *ServerName,
5381 * IDL [in] long Level,
5382 * IDL [in] [ref] TRANSPORT_INFO_0 *trans;
5386 srvsvc_dissect_netrservertransportadd_rqst(tvbuff_t *tvb, int offset,
5387 packet_info *pinfo, proto_tree *tree,
5390 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5391 srvsvc_dissect_pointer_UNICODE_STRING,
5392 NDR_POINTER_UNIQUE, "Server",
5393 hf_srvsvc_server, 0);
5395 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5396 hf_srvsvc_info_level, 0);
5398 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5399 srvsvc_dissect_TRANSPORT_INFO_0,
5400 NDR_POINTER_REF, "Transports",
5407 /* XXX dont know the out parameters. only the in parameters.
5409 * IDL long NetrServerTransportEnum(
5410 * IDL [in] [string] [unique] wchar_t *ServerName,
5411 * IDL [in] [ref] SERVER_XPORT_ENUM_STRUCT *xport;
5412 * IDL [in] long MaxLen,
5413 * IDL [in] [unique] long *resumehandle;
5417 srvsvc_dissect_netrservertransportenum_rqst(tvbuff_t *tvb, int offset,
5418 packet_info *pinfo, proto_tree *tree,
5421 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5422 srvsvc_dissect_pointer_UNICODE_STRING,
5423 NDR_POINTER_UNIQUE, "Server",
5424 hf_srvsvc_server, 0);
5426 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5427 srvsvc_dissect_SERVER_XPORT_ENUM_STRUCT,
5428 NDR_POINTER_REF, "Transports",
5431 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5432 hf_srvsvc_preferred_len, 0);
5434 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5435 srvsvc_dissect_ENUM_HANDLE,
5436 NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
5441 /* XXX dont know the out parameters. only the in parameters.
5443 * IDL long NetrServerTransportDel(
5444 * IDL [in] [string] [unique] wchar_t *ServerName,
5445 * IDL [in] long Level,
5446 * IDL [in] [ref] TRANSPORT_INFO_0 *trans;
5450 srvsvc_dissect_netrservertransportdel_rqst(tvbuff_t *tvb, int offset,
5451 packet_info *pinfo, proto_tree *tree,
5454 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5455 srvsvc_dissect_pointer_UNICODE_STRING,
5456 NDR_POINTER_UNIQUE, "Server",
5457 hf_srvsvc_server, 0);
5459 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5460 hf_srvsvc_info_level, 0);
5462 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5463 srvsvc_dissect_TRANSPORT_INFO_0,
5464 NDR_POINTER_REF, "Transports",
5473 static dcerpc_sub_dissector dcerpc_srvsvc_dissectors[] = {
5474 {SRV_NETRCHARDEVENUM, "NetrCharDevEnum",
5475 srvsvc_dissect_netrchardevenum_rqst,
5477 {SRV_NETRCHARDEVGETINFO, "NetrCharDevGetInfo",
5478 srvsvc_dissect_netrchardevgetinfo_rqst,
5480 {SRV_NETRCHARDEVCONTROL, "NetrCharDevControl",
5481 srvsvc_dissect_netrchardevcontrol_rqst,
5483 {SRV_NETRCHARDEVQENUM, "NetrCharDevQEnum",
5484 srvsvc_dissect_netrchardevqenum_rqst,
5486 {SRV_NETRCHARDEVQGETINFO, "NetrCharDevQGetInfo",
5487 srvsvc_dissect_netrchardevqgetinfo_rqst,
5489 {SRV_NETRCHARDEVQSETINFO, "NetrCharDevQSetInfo",
5490 srvsvc_dissect_netrchardevqsetinfo_rqst,
5492 {SRV_NETRCHARDEVQPURGE, "NetrCharDevQPurge",
5493 srvsvc_dissect_netrchardevqpurge_rqst,
5495 {SRV_NETRCHARDEVQPURGESELF, "NetrCharDevQPurgeSelf",
5496 srvsvc_dissect_netrchardevqpurgeself_rqst,
5498 {SRV_NETRCONNECTIONENUM, "NetrConnectionEnum",
5499 srvsvc_dissect_netrconnectionenum_rqst,
5501 {SRV_NETRFILEENUM, "NetrFileEnum",
5502 srvsvc_dissect_netrfileenum_rqst,
5504 {SRV_NETRFILEGETINFO, "NetrFileGetInfo",
5505 srvsvc_dissect_netrfilegetinfo_rqst,
5507 {SRV_NETRFILECLOSE, "NetrFileClose",
5508 srvsvc_dissect_netrfileclose_rqst,
5510 {SRV_NETRSESSIONENUM, "NetrSessionEnum",
5511 srvsvc_dissect_netrsessionenum_rqst,
5513 {SRV_NETRSESSIONDEL, "NetrSessionDel",
5514 srvsvc_dissect_netrsessiondel_rqst,
5516 {SRV_NETRSHAREADD, "NetrShareAdd",
5517 srvsvc_dissect_netrshareadd_rqst,
5519 {SRV_NETRSHAREENUM, "NetrShareEnum",
5520 srvsvc_dissect_netrshareenum_rqst,
5521 srvsvc_dissect_netrshareenum_reply},
5522 {SRV_NETRSHAREGETINFO, "NetrShareGetInfo",
5523 srvsvc_dissect_netrsharegetinfo_rqst,
5524 srvsvc_dissect_netrsharegetinfo_reply},
5525 {SRV_NETRSHARESETINFO, "NetrShareSetInfo",
5526 srvsvc_dissect_netrsharesetinfo_rqst,
5528 {SRV_NETRSHAREDEL, "NetrShareDel",
5529 srvsvc_dissect_netrsharedel_rqst,
5531 {SRV_NETRSHAREDELSTICKY, "NetrShareDelSticky",
5532 srvsvc_dissect_netrsharedelsticky_rqst,
5534 {SRV_NETRSHARECHECK, "NetrShareCheck",
5535 srvsvc_dissect_netrsharecheck_rqst,
5537 {SRV_NETRSERVERGETINFO, "NetrServerGetInfo",
5538 srvsvc_dissect_netrservergetinfo_rqst,
5539 srvsvc_dissect_netrservergetinfo_reply},
5540 {SRV_NETRSERVERSETINFO, "NetrServerSetInfo",
5541 srvsvc_dissect_netrserversetinfo_rqst,
5543 {SRV_NETRSERVERDISKENUM, "NetrServerDiskEnum",
5544 srvsvc_dissect_netrserverdiskenum_rqst,
5546 {SRV_NETRSERVERSTATISTICSGET, "NetrServerStatisticsGet",
5547 srvsvc_dissect_netrserverstatisticsget_rqst,
5549 {SRV_NETRSERVERTRANSPORTADD, "NetrServerTransportAdd",
5550 srvsvc_dissect_netrservertransportadd_rqst,
5552 {SRV_NETRSERVERTRANSPORTENUM, "NetrServerTransportEnum",
5553 srvsvc_dissect_netrservertransportenum_rqst,
5555 {SRV_NETRSERVERTRANSPORTDEL, "NetrServerTransportDel",
5556 srvsvc_dissect_netrservertransportdel_rqst,
5558 {SRV_NETRREMOTETOD, "NetrRemoteTOD", NULL, NULL},
5559 {SRV_NETRSERVERSETSERVICEBITS, "NetrServerSetServiceBits", NULL, NULL},
5560 {SRV_NETRPRPATHTYPE, "NetrpPathType", NULL, NULL},
5561 {SRV_NETRPRPATHCANONICALIZE, "NetrpPathCanonicalize", NULL, NULL},
5562 {SRV_NETRPRPATHCOMPARE, "NetrpPathCompare", NULL, NULL},
5563 {SRV_NETRPRNAMEVALIDATE, "NetrpNameValidate", NULL, NULL},
5564 {SRV_NETRPRNAMECANONICALIZE, "NetrpNameCanonicalize", NULL, NULL},
5565 {SRV_NETRPRNAMECOMPARE, "NetrpNameCompare", NULL, NULL},
5566 {SRV_NETRSHAREENUMSTICKY, "NetrShareEnumSticky", NULL, NULL},
5567 {SRV_NETRSHAREDELSTART, "NetrShareDelStart", NULL, NULL},
5568 {SRV_NETRSHAREDELCOMMIT, "NetrShareDelCommit", NULL, NULL},
5569 {SRV_NETRPGETFILESECURITY, "NetrpGetFileSecurity", NULL, NULL},
5570 {SRV_NETRPSETFILESECURITY, "NetrpSetFileSecurity", NULL, NULL},
5571 {SRV_NETRSERVERTRANSPORTADDEX, "NetrServerTransportAddEx", NULL, NULL},
5572 {SRV_NETRSERVERSETSERVICEBITS2, "NetrServerSetServiceBits2", NULL, NULL},
5573 {0, NULL, NULL, NULL}
5576 static const value_string platform_id_vals[] = {
5579 { 500, "Windows NT" },
5586 proto_register_dcerpc_srvsvc(void)
5588 static hf_register_info hf[] = {
5589 { &hf_srvsvc_server,
5590 { "Server", "srvsvc.server", FT_STRING, BASE_NONE,
5591 NULL, 0x0, "Server Name", HFILL}},
5592 { &hf_srvsvc_alerts,
5593 { "Alerts", "srvsvc.alerts", FT_STRING, BASE_NONE,
5594 NULL, 0x0, "Alerts", HFILL}},
5596 { "Guest Account", "srvsvc.guest", FT_STRING, BASE_NONE,
5597 NULL, 0x0, "Guest Account", HFILL}},
5598 { &hf_srvsvc_transport,
5599 { "Transport", "srvsvc.transport", FT_STRING, BASE_NONE,
5600 NULL, 0x0, "Transport Name", HFILL}},
5601 { &hf_srvsvc_session,
5602 { "Session", "srvsvc.session", FT_STRING, BASE_NONE,
5603 NULL, 0x0, "Session Name", HFILL}},
5604 { &hf_srvsvc_qualifier,
5605 { "Qualifier", "srvsvc.qualifier", FT_STRING, BASE_NONE,
5606 NULL, 0x0, "Connection Qualifier", HFILL}},
5607 { &hf_srvsvc_computer,
5608 { "Computer", "srvsvc.computer", FT_STRING, BASE_NONE,
5609 NULL, 0x0, "Computer Name", HFILL}},
5610 { &hf_srvsvc_chrdev,
5611 { "Char Device", "srvsvc.chrdev", FT_STRING, BASE_NONE,
5612 NULL, 0x0, "Char Device Name", HFILL}},
5613 { &hf_srvsvc_chrdevq,
5614 { "Device Queue", "srvsvc.chrdevq", FT_STRING, BASE_NONE,
5615 NULL, 0x0, "Char Device Queue Name", HFILL}},
5617 { "User", "srvsvc.user", FT_STRING, BASE_NONE,
5618 NULL, 0x0, "User Name", HFILL}},
5620 { "Path", "srvsvc.path", FT_STRING, BASE_NONE,
5621 NULL, 0x0, "Path", HFILL}},
5622 { &hf_srvsvc_share_passwd,
5623 { "Share Passwd", "srvsvc.share_passwd", FT_STRING, BASE_NONE,
5624 NULL, 0x0, "Password for this share", HFILL}},
5625 { &hf_srvsvc_chrdev_status,
5626 { "Status", "srvsvc.chrdev_status", FT_UINT32, BASE_HEX,
5627 NULL, 0x0, "Char Device Status", HFILL}},
5628 { &hf_srvsvc_chrqpri,
5629 { "Priority", "srvsvc.chrqdev_pri", FT_UINT32, BASE_HEX,
5630 NULL, 0x0, "Char QDevice Priority", HFILL}},
5631 { &hf_srvsvc_chrqnumusers,
5632 { "Num Users", "srvsvc.chrqdev_numusers", FT_UINT32, BASE_DEC,
5633 NULL, 0x0, "Char QDevice Number Of Users", HFILL}},
5634 { &hf_srvsvc_chrqnumahead,
5635 { "Num Ahead", "srvsvc.chrqdev_numahead", FT_UINT32, BASE_DEC,
5636 NULL, 0x0, "", HFILL}},
5637 { &hf_srvsvc_chrdev_opcode,
5638 { "Opcode", "srvsvc.chrdev_opcode", FT_UINT32, BASE_HEX,
5639 NULL, 0x0, "Opcode to apply to the Char Device", HFILL}},
5640 { &hf_srvsvc_chrdev_time,
5641 { "Time", "srvsvc.chrdev_time", FT_UINT32, BASE_DEC,
5642 NULL, 0x0, "Char Device Time?", HFILL}},
5643 { &hf_srvsvc_info_level,
5644 { "Info Level", "svrsvc.info_level", FT_UINT32,
5645 BASE_DEC, NULL, 0x0, "Info Level", HFILL}},
5647 { "Info Structure", "srvsvc.info_struct", FT_BYTES,
5648 BASE_HEX, NULL, 0x0, "Info Structure", HFILL}},
5650 { "Return code", "srvsvc.rc", FT_UINT32,
5651 BASE_HEX, VALS(NT_errors), 0x0, "Return Code", HFILL}},
5653 { &hf_srvsvc_platform_id,
5654 { "Platform ID", "srvsvc.info.platform_id", FT_UINT32,
5655 BASE_DEC, VALS(platform_id_vals), 0x0, "Platform ID", HFILL}},
5656 { &hf_srvsvc_ver_major,
5657 { "Major Version", "srvsvc.version.major", FT_UINT32,
5658 BASE_DEC, NULL, 0x0, "Major Version", HFILL}},
5659 { &hf_srvsvc_ver_minor,
5660 { "Minor Version", "srvsvc.version.minor", FT_UINT32,
5661 BASE_DEC, NULL, 0x0, "Minor Version", HFILL}},
5662 /* XXX - Should break this out. We know it from browsing. */
5663 { &hf_srvsvc_server_type,
5664 { "Server Type", "srvsvc.server.type", FT_UINT32,
5665 BASE_HEX, NULL, 0x0, "Server Type", HFILL}},
5666 { &hf_srvsvc_client_type,
5667 { "Client Type", "srvsvc.Client.type", FT_STRING,
5668 BASE_NONE, NULL, 0x0, "Client Type", HFILL}},
5669 { &hf_srvsvc_comment,
5670 { "Comment", "srvsvc.comment", FT_STRING,
5671 BASE_NONE, NULL, 0x0, "Comment", HFILL}},
5673 { "Users", "srvsvc.users", FT_UINT32,
5674 BASE_DEC, NULL, 0x0 , "User Count", HFILL}},
5676 { "Disc", "srvsvc.disc", FT_UINT32,
5677 BASE_DEC, NULL, 0x0 , "", HFILL}},
5678 { &hf_srvsvc_hidden,
5679 { "Hidden", "srvsvc.hidden", FT_UINT32,
5680 BASE_DEC, NULL, 0x0, "Hidden", HFILL}},
5681 { &hf_srvsvc_reserved,
5682 { "Reserved", "srvsvc.reserved", FT_UINT32,
5683 BASE_DEC, NULL, 0x0, "Announce", HFILL }},
5684 { &hf_srvsvc_announce,
5685 { "Announce", "srvsvc.announce", FT_UINT32,
5686 BASE_DEC, NULL, 0x0, "Announce", HFILL }},
5687 { &hf_srvsvc_anndelta,
5688 { "Announce Delta", "srvsvc.ann_delta", FT_UINT32,
5689 BASE_DEC, NULL, 0x0, "Announce Delta", HFILL}},
5690 { &hf_srvsvc_licences,
5691 { "Licences", "srvsvc.licences", FT_UINT32,
5692 BASE_DEC, NULL, 0x0, "Licences", HFILL}},
5693 { &hf_srvsvc_user_path,
5694 { "User Path", "srvsvc.user_path", FT_STRING,
5695 BASE_NONE, NULL, 0x0, "User Path", HFILL}},
5697 { "Share", "srvsvc.share", FT_STRING,
5698 BASE_NONE, NULL, 0x0, "Share", HFILL}},
5699 { &hf_srvsvc_share_info,
5700 { "Share Info", "srvsvc.share_info", FT_BYTES,
5701 BASE_HEX, NULL, 0x0, "Share Info", HFILL}},
5702 { &hf_srvsvc_share_type,
5703 { "Share Type", "srvsvc.share_type", FT_UINT32,
5704 BASE_HEX, VALS(share_type_vals), 0x0, "Share Type", HFILL}},
5705 { &hf_srvsvc_switch_value,
5706 { "Switch Value", "srvsvc.switch_val", FT_UINT32,
5707 BASE_DEC, NULL, 0x0, "Switch Value", HFILL}},
5708 { &hf_srvsvc_file_id,
5709 { "File ID", "srvsvc.file_id", FT_UINT32,
5710 BASE_DEC, NULL, 0x0, "File ID", HFILL}},
5712 { "Permissions", "srvsvc.perm", FT_UINT32,
5713 BASE_HEX, NULL, 0x0, "Permissions", HFILL}},
5714 { &hf_srvsvc_file_num_locks,
5715 { "Num Locks", "srvsvc.file_num_locks", FT_UINT32,
5716 BASE_DEC, NULL, 0x0, "Number of locks for file", HFILL}},
5717 { &hf_srvsvc_con_id,
5718 { "Connection ID", "srvsvc.con_id", FT_UINT32,
5719 BASE_DEC, NULL, 0x0, "Connection ID", HFILL}},
5720 { &hf_srvsvc_max_uses,
5721 { "Max Uses", "srvsvc.max_uses", FT_UINT32,
5722 BASE_DEC, NULL, 0x0, "Max Uses", HFILL}},
5723 { &hf_srvsvc_cur_uses,
5724 { "Current Uses", "srvsvc.cur_uses", FT_UINT32,
5725 BASE_DEC, NULL, 0x0, "Current Uses", HFILL}},
5726 { &hf_srvsvc_con_num_opens,
5727 { "Num Opens", "srvsvc.con_num_opens", FT_UINT32,
5728 BASE_DEC, NULL, 0x0, "Num Opens", HFILL}},
5729 { &hf_srvsvc_session_num_opens,
5730 { "Num Opens", "srvsvc.session.num_opens", FT_UINT32,
5731 BASE_DEC, NULL, 0x0, "Num Opens", HFILL}},
5732 { &hf_srvsvc_session_time,
5733 { "Time", "srvsvc.session.time", FT_UINT32,
5734 BASE_DEC, NULL, 0x0, "Time", HFILL}},
5735 { &hf_srvsvc_session_idle_time,
5736 { "Idle Time", "srvsvc.session.idle_time", FT_UINT32,
5737 BASE_DEC, NULL, 0x0, "Idle Time", HFILL}},
5738 { &hf_srvsvc_session_user_flags,
5739 { "User Flags", "srvsvc.session.user_flags", FT_UINT32,
5740 BASE_HEX, NULL, 0x0, "User Flags", HFILL}},
5741 { &hf_srvsvc_con_type,
5742 { "Connection Type", "srvsvc.con_type", FT_UINT32,
5743 BASE_DEC, NULL, 0x0, "Connection Type", HFILL}},
5744 { &hf_srvsvc_con_time,
5745 { "Connection Time", "srvsvc.con_time", FT_UINT32,
5746 BASE_DEC, NULL, 0x0, "Connection Time", HFILL}},
5747 { &hf_srvsvc_ulist_mtime,
5748 { "Ulist mtime", "srvsvc.ulist_mtime", FT_UINT32,
5749 BASE_DEC, NULL, 0x0, "Ulist mtime", HFILL}},
5750 { &hf_srvsvc_glist_mtime,
5751 { "Glist mtime", "srvsvc.glist_mtime", FT_UINT32,
5752 BASE_DEC, NULL, 0x0, "Glist mtime", HFILL}},
5753 { &hf_srvsvc_alist_mtime,
5754 { "Alist mtime", "srvsvc.alist_mtime", FT_UINT32,
5755 BASE_DEC, NULL, 0x0, "Alist mtime", HFILL}},
5756 { &hf_srvsvc_connections,
5757 { "Connections", "srvsvc.connections", FT_UINT32,
5758 BASE_DEC, NULL, 0x0, "Number of Connections", HFILL}},
5759 { &hf_srvsvc_shares,
5760 { "Shares", "srvsvc.shares", FT_UINT32,
5761 BASE_DEC, NULL, 0x0, "Number of Shares", HFILL}},
5762 { &hf_srvsvc_diskalert,
5763 { "Disk Alerts", "srvsvc.diskalert", FT_UINT32,
5764 BASE_DEC, NULL, 0x0, "Number of disk alerts", HFILL}},
5765 { &hf_srvsvc_netioalert,
5766 { "Net I/O Alerts", "srvsvc.netioalert", FT_UINT32,
5767 BASE_DEC, NULL, 0x0, "Number of Net I/O Alerts", HFILL}},
5768 { &hf_srvsvc_maxauditsz,
5769 { "Max Audits", "srvsvc.maxaudits", FT_UINT32,
5770 BASE_DEC, NULL, 0x0, "Maximum number of audits", HFILL}},
5771 { &hf_srvsvc_srvheuristics,
5772 { "Server Heuristics", "srvsvc.srvheuristics", FT_STRING,
5773 BASE_DEC, NULL, 0x0, "Server Heuristics", HFILL}},
5774 { &hf_srvsvc_openfiles,
5775 { "Open Files", "srvsvc.openfiles", FT_UINT32,
5776 BASE_DEC, NULL, 0x0, "Open Files", HFILL}},
5777 { &hf_srvsvc_opensearch,
5778 { "Open Search", "srvsvc.opensearch", FT_UINT32,
5779 BASE_DEC, NULL, 0x0, "Open Search", HFILL}},
5780 { &hf_srvsvc_activelocks,
5781 { "Active Locks", "srvsvc.activelocks", FT_UINT32,
5782 BASE_DEC, NULL, 0x0, "Active Locks", HFILL}},
5783 { &hf_srvsvc_numfiletasks,
5784 { "Num Filetasks", "srvsvc.numfiletasks", FT_UINT32,
5785 BASE_DEC, NULL, 0x0, "Number of filetasks", HFILL}},
5786 { &hf_srvsvc_alertsched,
5787 { "Alert Sched", "srvsvc.alertsched", FT_UINT32,
5788 BASE_DEC, NULL, 0x0, "Alert Schedule", HFILL}},
5789 { &hf_srvsvc_erroralert,
5790 { "Error Alerts", "srvsvc.erroralert", FT_UINT32,
5791 BASE_DEC, NULL, 0x0, "Number of error alerts", HFILL}},
5792 { &hf_srvsvc_logonalert,
5793 { "Logon Alerts", "srvsvc.logonalert", FT_UINT32,
5794 BASE_DEC, NULL, 0x0, "Number of logon alerts", HFILL}},
5795 { &hf_srvsvc_accessalert,
5796 { "Access Alerts", "srvsvc.accessalert", FT_UINT32,
5797 BASE_DEC, NULL, 0x0, "Number of access alerts", HFILL}},
5798 { &hf_srvsvc_sizreqbufs,
5799 { "Siz Req Bufs", "srvsvc.sizreqbufs", FT_UINT32,
5800 BASE_DEC, NULL, 0x0, "", HFILL}},
5801 { &hf_srvsvc_numbigbufs,
5802 { "Num Big Bufs", "srvsvc.numbigbufs", FT_UINT32,
5803 BASE_DEC, NULL, 0x0, "Number of big buffers", HFILL}},
5804 { &hf_srvsvc_sessopens,
5805 { "Sessions Open", "srvsvc.sessopens", FT_UINT32,
5806 BASE_DEC, NULL, 0x0, "Sessions Open", HFILL}},
5807 { &hf_srvsvc_sessvcs,
5808 { "Sessions VCs", "srvsvc.sessvcs", FT_UINT32,
5809 BASE_DEC, NULL, 0x0, "Sessions VCs", HFILL}},
5810 { &hf_srvsvc_sessreqs,
5811 { "Sessions Reqs", "srvsvc.sessreqs", FT_UINT32,
5812 BASE_DEC, NULL, 0x0, "Sessions Requests", HFILL}},
5813 { &hf_srvsvc_auditedevents,
5814 { "Audited Events", "srvsvc.auditedevents", FT_UINT32,
5815 BASE_DEC, NULL, 0x0, "Number of audited events", HFILL}},
5816 { &hf_srvsvc_auditprofile,
5817 { "Audit Profile", "srvsvc.auditprofile", FT_UINT32,
5818 BASE_HEX, NULL, 0x0, "Audit Profile", HFILL}},
5819 { &hf_srvsvc_autopath,
5820 { "Autopath", "srvsvc.autopath", FT_STRING,
5821 BASE_DEC, NULL, 0x0, "Autopath", HFILL}},
5822 { &hf_srvsvc_security,
5823 { "Security", "srvsvc.security", FT_UINT32,
5824 BASE_HEX, NULL, 0x0, "Security", HFILL}},
5825 { &hf_srvsvc_numadmin,
5826 { "Num Admins", "srvsvc.num_admins", FT_UINT32,
5827 BASE_DEC, NULL, 0x0, "Number of Administrators", HFILL}},
5828 { &hf_srvsvc_lanmask,
5829 { "LANMask", "srvsvc.lanmask", FT_UINT32,
5830 BASE_HEX, NULL, 0x0, "LANMask", HFILL}},
5831 { &hf_srvsvc_chdevs,
5832 { "Char Devs", "srvsvc.chdevs", FT_UINT32,
5833 BASE_DEC, NULL, 0x0, "Number of Char Devices", HFILL}},
5834 { &hf_srvsvc_chdevqs,
5835 { "Char Devqs", "srvsvc.chdevqs", FT_UINT32,
5836 BASE_DEC, NULL, 0x0, "Number of Char Device Queues", HFILL}},
5837 { &hf_srvsvc_chdevjobs,
5838 { "Char Dev Jobs", "srvsvc.chdevjobs", FT_UINT32,
5839 BASE_DEC, NULL, 0x0, "Number of Char Device Jobs", HFILL}},
5840 { &hf_srvsvc_num_entries,
5841 { "Number of entries", "srvsvc.share.num_entries", FT_UINT32,
5842 BASE_DEC, NULL, 0x0, "Number of Entries", HFILL}},
5843 { &hf_srvsvc_num_pointers,
5844 { "Pointer entries", "srvsvc.share.pointer_entries", FT_UINT32,
5845 BASE_DEC, NULL, 0x0, "Pointer Entries", HFILL}},
5846 { &hf_srvsvc_initworkitems,
5847 { "Init Workitems", "srvsvc.initworkitems", FT_UINT32,
5848 BASE_DEC, NULL, 0x0, "Workitems", HFILL}},
5849 { &hf_srvsvc_maxworkitems,
5850 { "Max Workitems", "srvsvc.maxworkitems", FT_UINT32,
5851 BASE_DEC, NULL, 0x0, "Workitems", HFILL}},
5852 { &hf_srvsvc_rawworkitems,
5853 { "Raw Workitems", "srvsvc.rawworkitems", FT_UINT32,
5854 BASE_DEC, NULL, 0x0, "Workitems", HFILL}},
5855 { &hf_srvsvc_preferred_len,
5856 { "Preferred length", "srvsvc.preferred_len", FT_UINT32,
5857 BASE_DEC, NULL, 0x0, "Preferred Length", HFILL}},
5858 { &hf_srvsvc_parm_error,
5859 { "Parameter Error", "srvsvc.parm_error", FT_UINT32,
5860 BASE_DEC, NULL, 0x0, "Parameter Error", HFILL}},
5861 { &hf_srvsvc_enum_handle,
5862 { "Enumeration handle", "srvsvc.enum_hnd", FT_BYTES,
5863 BASE_HEX, NULL, 0x0, "Enumeration Handle", HFILL}},
5864 { &hf_srvsvc_unknown_long,
5865 { "Unknown long", "srvsvc.unknown.long", FT_UINT32, BASE_HEX,
5866 NULL, 0x0, "Unknown long. If you know what this is, contact ethereal developers.", HFILL }},
5867 { &hf_srvsvc_unknown_bytes,
5868 { "Unknown bytes", "srvsvc.unknown.bytes", FT_BYTES, BASE_HEX,
5869 NULL, 0x0, "Unknown bytes. If you know what this is, contact ethereal developers.", HFILL }},
5870 { &hf_srvsvc_unknown_string,
5871 { "Unknown string", "srvsvc.unknown.string", FT_STRING, BASE_HEX,
5872 NULL, 0x0, "Unknown string. If you know what this is, contact ethereal developers.", HFILL }},
5873 { &hf_srvsvc_irpstacksize,
5874 { "Irp Stack Size", "srvsvc.irpstacksize", FT_UINT32,
5875 BASE_HEX, NULL, 0x0, "Irp Stack Size", HFILL}},
5876 { &hf_srvsvc_maxrawbuflen,
5877 { "Max Raw Buf Len", "srvsvc.", FT_UINT32,
5878 BASE_HEX, NULL, 0x0, "Max Raw Buf Len", HFILL}},
5879 { &hf_srvsvc_maxpagedmemoryusage,
5880 { "Max Paged Memory Usage", "srvsvc.maxpagedmemoryusage", FT_UINT32,
5881 BASE_HEX, NULL, 0x0, "Max Paged Memory Usage", HFILL}},
5882 { &hf_srvsvc_maxnonpagedmemoryusage,
5883 { "Max Non-Paged Memory Usage", "srvsvc.maxnonpagedmemoryusage", FT_UINT32,
5884 BASE_HEX, NULL, 0x0, "Max Non-Paged Memory Usage", HFILL}},
5885 { &hf_srvsvc_enablesoftcompat,
5886 { "Enable Soft Compat", "srvsvc.enablesoftcompat", FT_UINT32,
5887 BASE_HEX, NULL, 0x0, "Enable Soft Compat", HFILL}},
5888 { &hf_srvsvc_enableforcedlogoff,
5889 { "Enable Forced Logoff", "srvsvc.enableforcedlogoff", FT_UINT32,
5890 BASE_HEX, NULL, 0x0, "Enable Forced Logoff", HFILL}},
5891 { &hf_srvsvc_timesource,
5892 { "Timesource", "srvsvc.timesource", FT_UINT32,
5893 BASE_HEX, NULL, 0x0, "Timesource", HFILL}},
5894 { &hf_srvsvc_acceptdownlevelapis,
5895 { "Accept Downlevel APIs", "srvsvc.acceptdownlevelapis", FT_UINT32,
5896 BASE_HEX, NULL, 0x0, "Accept Downlevel APIs", HFILL}},
5897 { &hf_srvsvc_lmannounce,
5898 { "LM Announce", "srvsvc.lmannounce", FT_UINT32,
5899 BASE_HEX, NULL, 0x0, "LM Announce", HFILL}},
5900 { &hf_srvsvc_domain,
5901 { "Domain", "srvsvc.domain", FT_STRING,
5902 BASE_HEX, NULL, 0x0, "Domain", HFILL}},
5903 { &hf_srvsvc_maxcopyreadlen,
5904 { "Max Copy Read Len", "srvsvc.maxcopyreadlen", FT_UINT32,
5905 BASE_DEC, NULL, 0x0, "Max Copy Read Len", HFILL}},
5906 { &hf_srvsvc_maxcopywritelen,
5907 { "Max Copy Write Len", "srvsvc.maxcopywritelen", FT_UINT32,
5908 BASE_DEC, NULL, 0x0, "Max Copy Write Len", HFILL}},
5909 { &hf_srvsvc_minkeepsearch,
5910 { "Min Keep Search", "srvsvc.minkeepsearch", FT_UINT32,
5911 BASE_DEC, NULL, 0x0, "Min Keep Search", HFILL}},
5912 { &hf_srvsvc_maxkeepsearch,
5913 { "Max Keep Search", "srvsvc.maxkeepsearch", FT_UINT32,
5914 BASE_DEC, NULL, 0x0, "Max Keep Search", HFILL}},
5915 { &hf_srvsvc_minkeepcomplsearch,
5916 { "Min Keep Compl Search", "srvsvc.minkeepcomplsearch", FT_UINT32,
5917 BASE_DEC, NULL, 0x0, "Min Keep Compl Search", HFILL}},
5918 { &hf_srvsvc_maxkeepcomplsearch,
5919 { "Max Keep Compl Search", "srvsvc.maxkeepcomplsearch", FT_UINT32,
5920 BASE_DEC, NULL, 0x0, "Max Keep Compl Search", HFILL}},
5921 { &hf_srvsvc_threadcountadd,
5922 { "Thread Count Add", "srvsvc.threadcountadd", FT_UINT32,
5923 BASE_DEC, NULL, 0x0, "Thread Count Add", HFILL}},
5924 { &hf_srvsvc_numblockthreads,
5925 { "Num Block Threads", "srvsvc.numblockthreads", FT_UINT32,
5926 BASE_DEC, NULL, 0x0, "Num Block Threads", HFILL}},
5927 { &hf_srvsvc_scavtimeout,
5928 { "Scav Timeout", "srvsvc.scavtimeout", FT_UINT32,
5929 BASE_DEC, NULL, 0x0, "Scav Timeout", HFILL}},
5930 { &hf_srvsvc_minrcvqueue,
5931 { "Min Rcv Queue", "srvsvc.minrcvqueue", FT_UINT32,
5932 BASE_DEC, NULL, 0x0, "Min Rcv Queue", HFILL}},
5933 { &hf_srvsvc_minfreeworkitems,
5934 { "Min Free Workitems", "srvsvc.minfreeworkitems", FT_UINT32,
5935 BASE_DEC, NULL, 0x0, "Min Free Workitems", HFILL}},
5936 { &hf_srvsvc_xactmemsize,
5937 { "Xact Mem Size", "srvsvc.xactmemsize", FT_UINT32,
5938 BASE_DEC, NULL, 0x0, "Xact Mem Size", HFILL}},
5939 { &hf_srvsvc_threadpriority,
5940 { "Thread Priority", "srvsvc.threadpriority", FT_UINT32,
5941 BASE_DEC, NULL, 0x0, "Thread Priority", HFILL}},
5942 { &hf_srvsvc_maxmpxct,
5943 { "MaxMpxCt", "srvsvc.maxmpxct", FT_UINT32,
5944 BASE_DEC, NULL, 0x0, "MaxMpxCt", HFILL}},
5945 { &hf_srvsvc_oplockbreakwait,
5946 { "Oplock Break Wait", "srvsvc.oplockbreakwait", FT_UINT32,
5947 BASE_DEC, NULL, 0x0, "Oplock Break Wait", HFILL}},
5948 { &hf_srvsvc_oplockbreakresponsewait,
5949 { "Oplock Break Response wait", "srvsvc.oplockbreakresponsewait", FT_UINT32,
5950 BASE_DEC, NULL, 0x0, "Oplock Break response Wait", HFILL}},
5951 { &hf_srvsvc_enableoplocks,
5952 { "Enable Oplocks", "srvsvc.enableoplocks", FT_UINT32,
5953 BASE_DEC, NULL, 0x0, "Enable Oplocks", HFILL}},
5954 { &hf_srvsvc_enableoplockforceclose,
5955 { "Enable Oplock Force Close", "srvsvc.enableoplockforceclose", FT_UINT32,
5956 BASE_DEC, NULL, 0x0, "Enable Oplock Force Close", HFILL}},
5957 { &hf_srvsvc_enablefcbopens,
5958 { "Enable FCB Opens", "srvsvc.enablefcbopens", FT_UINT32,
5959 BASE_DEC, NULL, 0x0, "Enable FCB Opens", HFILL}},
5960 { &hf_srvsvc_enableraw,
5961 { "Enable RAW", "srvsvc.enableraw", FT_UINT32,
5962 BASE_DEC, NULL, 0x0, "Enable RAW", HFILL}},
5963 { &hf_srvsvc_enablesharednetdrives,
5964 { "Enable Shared Net Drives", "srvsvc.enablesharednetdrives", FT_UINT32,
5965 BASE_DEC, NULL, 0x0, "Enable Shared Net Drives", HFILL}},
5966 { &hf_srvsvc_minfreeconnections,
5967 { "Min Free Conenctions", "srvsvc.minfreeconnections", FT_UINT32,
5968 BASE_DEC, NULL, 0x0, "Min Free Connections", HFILL}},
5969 { &hf_srvsvc_maxfreeconnections,
5970 { "Max Free Conenctions", "srvsvc.maxfreeconnections", FT_UINT32,
5971 BASE_DEC, NULL, 0x0, "Max Free Connections", HFILL}},
5972 { &hf_srvsvc_initsesstable,
5973 { "Init Session Table", "srvsvc.initsesstable", FT_UINT32,
5974 BASE_DEC, NULL, 0x0, "Init Session Table", HFILL}},
5975 { &hf_srvsvc_initconntable,
5976 { "Init Connection Table", "srvsvc.initconntable", FT_UINT32,
5977 BASE_DEC, NULL, 0x0, "Init Connection Table", HFILL}},
5978 { &hf_srvsvc_initfiletable,
5979 { "Init File Table", "srvsvc.initfiletable", FT_UINT32,
5980 BASE_DEC, NULL, 0x0, "Init File Table", HFILL}},
5981 { &hf_srvsvc_initsearchtable,
5982 { "Init Search Table", "srvsvc.initsearchtable", FT_UINT32,
5983 BASE_DEC, NULL, 0x0, "Init Search Table", HFILL}},
5984 { &hf_srvsvc_errortreshold,
5985 { "Error Treshold", "srvsvc.errortreshold", FT_UINT32,
5986 BASE_DEC, NULL, 0x0, "Error Treshold", HFILL}},
5987 { &hf_srvsvc_networkerrortreshold,
5988 { "Network Error Treshold", "srvsvc.networkerrortreshold", FT_UINT32,
5989 BASE_DEC, NULL, 0x0, "Network Error Treshold", HFILL}},
5990 { &hf_srvsvc_diskspacetreshold,
5991 { "Diskspace Treshold", "srvsvc.diskspacetreshold", FT_UINT32,
5992 BASE_DEC, NULL, 0x0, "Diskspace Treshold", HFILL}},
5993 { &hf_srvsvc_maxlinkdelay,
5994 { "Max Link Delay", "srvsvc.maxlinkdelay", FT_UINT32,
5995 BASE_DEC, NULL, 0x0, "Max Link Delay", HFILL}},
5996 { &hf_srvsvc_minlinkthroughput,
5997 { "Min Link Throughput", "srvsvc.minlinkthroughput", FT_UINT32,
5998 BASE_DEC, NULL, 0x0, "Min Link Throughput", HFILL}},
5999 { &hf_srvsvc_linkinfovalidtime,
6000 { "Link Info Valid Time", "srvsvc.linkinfovalidtime", FT_UINT32,
6001 BASE_DEC, NULL, 0x0, "Link Info Valid Time", HFILL}},
6002 { &hf_srvsvc_scavqosinfoupdatetime,
6003 { "Scav QoS Info Update Time", "srvsvc.scavqosinfoupdatetime", FT_UINT32,
6004 BASE_DEC, NULL, 0x0, "Scav QoS Info Update Time", HFILL}},
6005 { &hf_srvsvc_maxworkitemidletime,
6006 { "Max Workitem Idle Time", "srvsvc.maxworkitemidletime", FT_UINT32,
6007 BASE_DEC, NULL, 0x0, "Max Workitem Idle Time", HFILL}},
6008 { &hf_srvsvc_disk_name,
6009 { "Disk Name", "srvsvc.disk_name", FT_STRING,
6010 BASE_DEC, NULL, 0x0, "Disk Name", HFILL}},
6011 { &hf_srvsvc_disk_name_len,
6012 { "Disk Name Length", "srvsvc.disk_name_len", FT_UINT32,
6013 BASE_DEC, NULL, 0x0, "Length of Disk Name", HFILL}},
6014 { &hf_srvsvc_service,
6015 { "Service", "srvsvc.service", FT_STRING,
6016 BASE_DEC, NULL, 0x0, "Service", HFILL}},
6017 { &hf_srvsvc_service_options,
6018 { "Options", "srvsvc.service_options", FT_UINT32,
6019 BASE_HEX, NULL, 0x0, "Service Options", HFILL}},
6020 { &hf_srvsvc_transport_numberofvcs,
6021 { "VCs", "srvsvc.transport.num_vcs", FT_UINT32,
6022 BASE_DEC, NULL, 0x0, "Number of VCs for this transport", HFILL}},
6023 { &hf_srvsvc_transport_name,
6024 { "Name", "srvsvc.transport.name", FT_STRING,
6025 BASE_HEX, NULL, 0x0, "Name of transport", HFILL}},
6026 { &hf_srvsvc_transport_address,
6027 { "Address", "srvsvc.transport.address", FT_BYTES,
6028 BASE_HEX, NULL, 0x0, "Address of transport", HFILL}},
6029 { &hf_srvsvc_transport_address_len,
6030 { "Address Len", "srvsvc.transport.addresslen", FT_UINT32,
6031 BASE_DEC, NULL, 0x0, "Length of transport address", HFILL}},
6032 { &hf_srvsvc_transport_networkaddress,
6033 { "Network Address", "srvsvc.transport.networkaddress", FT_UINT32,
6034 BASE_HEX, NULL, 0x0, "Network address for transport", HFILL}},
6037 static gint *ett[] = {
6039 &ett_srvsvc_server_info,
6040 &ett_srvsvc_share_info,
6041 &ett_srvsvc_share_info_1,
6042 &ett_srvsvc_share_info_2,
6043 &ett_srvsvc_share_info_502
6046 proto_dcerpc_srvsvc = proto_register_protocol(
6047 "Microsoft Server Service", "SRVSVC", "srvsvc");
6049 proto_register_field_array(proto_dcerpc_srvsvc, hf, array_length(hf));
6050 proto_register_subtree_array(ett, array_length(ett));
6054 proto_reg_handoff_dcerpc_srvsvc(void)
6056 /* Register protocol as dcerpc */
6058 dcerpc_init_uuid(proto_dcerpc_srvsvc, ett_dcerpc_srvsvc,
6059 &uuid_dcerpc_srvsvc, ver_dcerpc_srvsvc,
6060 dcerpc_srvsvc_dissectors);