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 ...
6 * Copyright 2002, Ronnie Sahlberg
7 * rewrote entire dissector
9 * $Id: packet-dcerpc-srvsvc.c,v 1.33 2002/06/21 14:27:46 sahlberg Exp $
11 * Ethereal - Network traffic analyzer
12 * By Gerald Combs <gerald@ethereal.com>
13 * Copyright 1998 Gerald Combs
15 * This program is free software; you can redistribute it and/or
16 * modify it under the terms of the GNU General Public License
17 * as published by the Free Software Foundation; either version 2
18 * of the License, or (at your option) any later version.
20 * This program is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 * GNU General Public License for more details.
25 * You should have received a copy of the GNU General Public License
26 * along with this program; if not, write to the Free Software
27 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
36 #include <epan/packet.h>
37 #include "packet-dcerpc.h"
38 #include "packet-dcerpc-srvsvc.h"
39 #include "packet-dcerpc-lsa.h"
40 #include "packet-dcerpc-nt.h"
41 #include "packet-smb-common.h"
44 static int proto_dcerpc_srvsvc = -1;
45 static int hf_srvsvc_reserved = -1;
46 static int hf_srvsvc_server = -1;
47 static int hf_srvsvc_emulated_server = -1;
48 static int hf_srvsvc_alerts = -1;
49 static int hf_srvsvc_guest = -1;
50 static int hf_srvsvc_transport = -1;
51 static int hf_srvsvc_session = -1;
52 static int hf_srvsvc_session_num_opens = -1;
53 static int hf_srvsvc_session_time = -1;
54 static int hf_srvsvc_session_idle_time = -1;
55 static int hf_srvsvc_session_user_flags = -1;
56 static int hf_srvsvc_qualifier = -1;
57 static int hf_srvsvc_computer = -1;
58 static int hf_srvsvc_user = -1;
59 static int hf_srvsvc_path = -1;
60 static int hf_srvsvc_share_passwd = -1;
61 static int hf_srvsvc_file_id = -1;
62 static int hf_srvsvc_perm = -1;
63 static int hf_srvsvc_file_num_locks = -1;
64 static int hf_srvsvc_con_id = -1;
65 static int hf_srvsvc_max_uses = -1;
66 static int hf_srvsvc_cur_uses = -1;
67 static int hf_srvsvc_con_time = -1;
68 static int hf_srvsvc_con_type = -1;
69 static int hf_srvsvc_con_num_opens = -1;
70 static int hf_srvsvc_chrqpri = -1;
71 static int hf_srvsvc_chrqnumusers = -1;
72 static int hf_srvsvc_chrqnumahead = -1;
73 static int hf_srvsvc_chrdev = -1;
74 static int hf_srvsvc_chrdevq = -1;
75 static int hf_srvsvc_chrdev_time = -1;
76 static int hf_srvsvc_chrdev_status = -1;
77 static int hf_srvsvc_chrdev_opcode = -1;
78 static int hf_srvsvc_info_level = -1;
79 static int hf_srvsvc_rc = -1;
80 static int hf_srvsvc_platform_id = -1;
81 static int hf_srvsvc_ver_major = -1;
82 static int hf_srvsvc_ver_minor = -1;
83 static int hf_srvsvc_server_type = -1;
84 static int hf_srvsvc_client_type = -1;
85 static int hf_srvsvc_comment = -1;
86 static int hf_srvsvc_users = -1;
87 static int hf_srvsvc_disc = -1;
88 static int hf_srvsvc_hidden = -1;
89 static int hf_srvsvc_announce = -1;
90 static int hf_srvsvc_anndelta = -1;
91 static int hf_srvsvc_licences = -1;
92 static int hf_srvsvc_user_path = -1;
93 static int hf_srvsvc_share = -1;
94 static int hf_srvsvc_share_type = -1;
95 static int hf_srvsvc_num_entries = -1;
96 static int hf_srvsvc_preferred_len = -1;
97 static int hf_srvsvc_parm_error = -1;
98 static int hf_srvsvc_enum_handle = -1;
99 static int hf_srvsvc_ulist_mtime = -1;
100 static int hf_srvsvc_glist_mtime = -1;
101 static int hf_srvsvc_alist_mtime = -1;
102 static int hf_srvsvc_security = -1;
103 static int hf_srvsvc_numadmin = -1;
104 static int hf_srvsvc_lanmask = -1;
105 static int hf_srvsvc_chdevs = -1;
106 static int hf_srvsvc_chdevqs = -1;
107 static int hf_srvsvc_chdevjobs = -1;
108 static int hf_srvsvc_connections = -1;
109 static int hf_srvsvc_shares = -1;
110 static int hf_srvsvc_openfiles = -1;
111 static int hf_srvsvc_sessopens = -1;
112 static int hf_srvsvc_sessvcs = -1;
113 static int hf_srvsvc_sessreqs = -1;
114 static int hf_srvsvc_opensearch = -1;
115 static int hf_srvsvc_activelocks = -1;
116 static int hf_srvsvc_sizreqbufs = -1;
117 static int hf_srvsvc_numbigbufs = -1;
118 static int hf_srvsvc_numfiletasks = -1;
119 static int hf_srvsvc_alertsched = -1;
120 static int hf_srvsvc_erroralert = -1;
121 static int hf_srvsvc_logonalert = -1;
122 static int hf_srvsvc_accessalert = -1;
123 static int hf_srvsvc_diskalert = -1;
124 static int hf_srvsvc_netioalert = -1;
125 static int hf_srvsvc_maxauditsz = -1;
126 static int hf_srvsvc_srvheuristics = -1;
127 static int hf_srvsvc_auditedevents = -1;
128 static int hf_srvsvc_auditprofile = -1;
129 static int hf_srvsvc_autopath = -1;
130 static int hf_srvsvc_initworkitems = -1;
131 static int hf_srvsvc_maxworkitems = -1;
132 static int hf_srvsvc_rawworkitems = -1;
133 static int hf_srvsvc_irpstacksize = -1;
134 static int hf_srvsvc_maxrawbuflen = -1;
135 static int hf_srvsvc_maxpagedmemoryusage = -1;
136 static int hf_srvsvc_maxnonpagedmemoryusage = -1;
137 static int hf_srvsvc_enablesoftcompat = -1;
138 static int hf_srvsvc_enableforcedlogoff = -1;
139 static int hf_srvsvc_timesource = -1;
140 static int hf_srvsvc_acceptdownlevelapis = -1;
141 static int hf_srvsvc_lmannounce = -1;
142 static int hf_srvsvc_domain = -1;
143 static int hf_srvsvc_maxcopyreadlen = -1;
144 static int hf_srvsvc_maxcopywritelen = -1;
145 static int hf_srvsvc_minkeepsearch = -1;
146 static int hf_srvsvc_maxkeepsearch = -1;
147 static int hf_srvsvc_minkeepcomplsearch = -1;
148 static int hf_srvsvc_maxkeepcomplsearch = -1;
149 static int hf_srvsvc_threadcountadd = -1;
150 static int hf_srvsvc_numblockthreads = -1;
151 static int hf_srvsvc_scavtimeout = -1;
152 static int hf_srvsvc_minrcvqueue = -1;
153 static int hf_srvsvc_minfreeworkitems = -1;
154 static int hf_srvsvc_xactmemsize = -1;
155 static int hf_srvsvc_threadpriority = -1;
156 static int hf_srvsvc_maxmpxct = -1;
157 static int hf_srvsvc_oplockbreakwait = -1;
158 static int hf_srvsvc_oplockbreakresponsewait = -1;
159 static int hf_srvsvc_enableoplocks = -1;
160 static int hf_srvsvc_enableoplockforceclose = -1;
161 static int hf_srvsvc_enablefcbopens = -1;
162 static int hf_srvsvc_enableraw = -1;
163 static int hf_srvsvc_enablesharednetdrives = -1;
164 static int hf_srvsvc_minfreeconnections = -1;
165 static int hf_srvsvc_maxfreeconnections = -1;
166 static int hf_srvsvc_initsesstable = -1;
167 static int hf_srvsvc_initconntable = -1;
168 static int hf_srvsvc_initfiletable = -1;
169 static int hf_srvsvc_initsearchtable = -1;
170 static int hf_srvsvc_errortreshold = -1;
171 static int hf_srvsvc_networkerrortreshold = -1;
172 static int hf_srvsvc_diskspacetreshold = -1;
173 static int hf_srvsvc_maxlinkdelay = -1;
174 static int hf_srvsvc_minlinkthroughput = -1;
175 static int hf_srvsvc_linkinfovalidtime = -1;
176 static int hf_srvsvc_scavqosinfoupdatetime = -1;
177 static int hf_srvsvc_maxworkitemidletime = -1;
178 static int hf_srvsvc_disk_name = -1;
179 static int hf_srvsvc_disk_name_len = -1;
180 static int hf_srvsvc_service = -1;
181 static int hf_srvsvc_service_options = -1;
182 static int hf_srvsvc_transport_numberofvcs = -1;
183 static int hf_srvsvc_transport_name = -1;
184 static int hf_srvsvc_transport_address = -1;
185 static int hf_srvsvc_transport_address_len = -1;
186 static int hf_srvsvc_transport_networkaddress = -1;
187 static int hf_srvsvc_service_bits = -1;
188 static int hf_srvsvc_service_bits_of_interest = -1;
189 static int hf_srvsvc_update_immediately = -1;
190 static int hf_srvsvc_path_flags = -1;
191 static int hf_srvsvc_path_type = -1;
192 static int hf_srvsvc_outbuflen = -1;
193 static int hf_srvsvc_prefix = -1;
194 static int hf_srvsvc_hnd = -1;
196 static gint ett_dcerpc_srvsvc = -1;
197 static gint ett_srvsvc_share_info_1 = -1;
198 static gint ett_srvsvc_share_info_2 = -1;
199 static gint ett_srvsvc_share_info_502 = -1;
203 static e_uuid_t uuid_dcerpc_srvsvc = {
204 0x4b324fc8, 0x1670, 0x01d3,
205 { 0x12, 0x78, 0x5a, 0x47, 0xbf, 0x6e, 0xe1, 0x88 }
208 static guint16 ver_dcerpc_srvsvc = 3;
211 srvsvc_dissect_pointer_long(tvbuff_t *tvb, int offset,
212 packet_info *pinfo, proto_tree *tree,
217 di=pinfo->private_data;
218 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
224 srvsvc_dissect_ENUM_HANDLE(tvbuff_t *tvb, int offset,
225 packet_info *pinfo, proto_tree *tree,
229 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
230 hf_srvsvc_enum_handle, 0);
236 srvsvc_dissect_pointer_UNICODE_STRING(tvbuff_t *tvb, int offset,
237 packet_info *pinfo, proto_tree *tree,
242 di=pinfo->private_data;
243 if(di->conformant_run){
244 /*just a run to handle conformant arrays, nothing to dissect */
248 offset = dissect_ndr_nt_UNICODE_STRING_str(tvb, offset, pinfo, tree,
258 * IDL typedef struct {
259 * IDL [string] [unique] wchar_t *dev;
260 * IDL } CHARDEV_INFO_0;
263 srvsvc_dissect_CHARDEV_INFO_0(tvbuff_t *tvb, int offset,
264 packet_info *pinfo, proto_tree *tree,
267 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
268 srvsvc_dissect_pointer_UNICODE_STRING,
269 NDR_POINTER_UNIQUE, "Char Device",
270 hf_srvsvc_chrdev, 0);
275 srvsvc_dissect_CHARDEV_INFO_0_array(tvbuff_t *tvb, int offset,
276 packet_info *pinfo, proto_tree *tree,
279 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
280 srvsvc_dissect_CHARDEV_INFO_0);
286 * IDL typedef struct {
287 * IDL long EntriesRead;
288 * IDL [size_is(EntriesRead)] [unique] CHARDEV_INFO_0 *devs;
289 * IDL } CHARDEV_INFO_0_CONTAINER;
292 srvsvc_dissect_CHARDEV_INFO_0_CONTAINER(tvbuff_t *tvb, int offset,
293 packet_info *pinfo, proto_tree *tree,
296 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
297 hf_srvsvc_num_entries, NULL);
299 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
300 srvsvc_dissect_CHARDEV_INFO_0_array, NDR_POINTER_UNIQUE,
301 "CHARDEV_INFO_0 array:", -1, 0);
307 * IDL typedef struct {
308 * IDL [string] [unique] wchar_t *dev;
310 * IDL [string] [unique] wchar_t *user;
312 * IDL } CHARDEV_INFO_1;
315 srvsvc_dissect_CHARDEV_INFO_1(tvbuff_t *tvb, int offset,
316 packet_info *pinfo, proto_tree *tree,
319 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
320 srvsvc_dissect_pointer_UNICODE_STRING,
321 NDR_POINTER_UNIQUE, "Char Device",
322 hf_srvsvc_chrdev, 0);
324 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
325 hf_srvsvc_chrdev_status, 0);
327 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
328 srvsvc_dissect_pointer_UNICODE_STRING,
329 NDR_POINTER_UNIQUE, "User",
332 /* XXX dont know how to decode this time field */
333 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
334 hf_srvsvc_chrdev_time, 0);
339 srvsvc_dissect_CHARDEV_INFO_1_array(tvbuff_t *tvb, int offset,
340 packet_info *pinfo, proto_tree *tree,
343 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
344 srvsvc_dissect_CHARDEV_INFO_1);
350 * IDL typedef struct {
351 * IDL long EntriesRead;
352 * IDL [size_is(EntriesRead)] [unique] CHARDEV_INFO_1 *devs;
353 * IDL } CHARDEV_INFO_1_CONTAINER;
356 srvsvc_dissect_CHARDEV_INFO_1_CONTAINER(tvbuff_t *tvb, int offset,
357 packet_info *pinfo, proto_tree *tree,
360 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
361 hf_srvsvc_num_entries, NULL);
363 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
364 srvsvc_dissect_CHARDEV_INFO_1_array, NDR_POINTER_UNIQUE,
365 "CHARDEV_INFO_1 array:", -1, 3);
371 * IDL typedef [switch_type(long)] union {
372 * IDL [case(0)] [unique] CHARDEV_INFO_0_CONTAINER *dev0;
373 * IDL [case(1)] [unique] CHARDEV_INFO_1_CONTAINER *dev1;
374 * IDL } CHARDEV_ENUM_UNION;
377 srvsvc_dissect_CHARDEV_ENUM_UNION(tvbuff_t *tvb, int offset,
378 packet_info *pinfo, proto_tree *tree,
385 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_info_level, &level);
389 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
390 srvsvc_dissect_CHARDEV_INFO_0_CONTAINER,
391 NDR_POINTER_UNIQUE, "CHARDEV_INFO_0_CONTAINER:",
395 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
396 srvsvc_dissect_CHARDEV_INFO_1_CONTAINER,
397 NDR_POINTER_UNIQUE, "CHARDEV_INFO_1_CONTAINER:",
406 * IDL typedef struct {
408 * IDL CHARDEV_ENUM_UNION devs;
409 * IDL } CHARDEV_ENUM_STRUCT;
412 srvsvc_dissect_CHARDEV_ENUM_STRUCT(tvbuff_t *tvb, int offset,
413 packet_info *pinfo, proto_tree *tree,
416 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
417 hf_srvsvc_info_level, 0);
419 offset = srvsvc_dissect_CHARDEV_ENUM_UNION(tvb, offset, pinfo, tree, drep);
424 /* XXX dont know the out parameters. only the in parameters.
426 * IDL long NetrCharDevEnum(
427 * IDL [in] [string] [unique] wchar_t *ServerName,
428 * IDL [in] [ref] CHARDEV_ENUM_STRUCT *devs,
429 * IDL [in] long PreferredMaximumLength,
430 * IDL [in] [unique] long *ResumeHandle
434 srvsvc_dissect_netrchardevenum_rqst(tvbuff_t *tvb, int offset,
435 packet_info *pinfo, proto_tree *tree,
438 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
439 srvsvc_dissect_pointer_UNICODE_STRING,
440 NDR_POINTER_UNIQUE, "Server",
441 hf_srvsvc_server, 0);
443 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
444 srvsvc_dissect_CHARDEV_ENUM_STRUCT,
445 NDR_POINTER_REF, "CHARDEV_ENUM_STRUCT",
448 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
449 hf_srvsvc_preferred_len, 0);
451 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
452 srvsvc_dissect_ENUM_HANDLE,
453 NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
459 /* XXX dont know the out parameters. only the in parameters.
461 * IDL long NetrCharDevEnum(
462 * IDL [in] [string] [unique] wchar_t *ServerName,
463 * IDL [in] [string] [ref] wchar_t *DevName,
464 * IDL [in] long Level
468 srvsvc_dissect_netrchardevgetinfo_rqst(tvbuff_t *tvb, int offset,
469 packet_info *pinfo, proto_tree *tree,
472 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
473 srvsvc_dissect_pointer_UNICODE_STRING,
474 NDR_POINTER_UNIQUE, "Server",
475 hf_srvsvc_server, 0);
477 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
478 srvsvc_dissect_pointer_UNICODE_STRING,
479 NDR_POINTER_REF, "Char Device",
480 hf_srvsvc_chrdev, 0);
482 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
483 hf_srvsvc_info_level, 0);
487 /* XXX dont know the out parameters. only the in parameters.
489 * IDL long NetrCharDevControl(
490 * IDL [in] [string] [unique] wchar_t *ServerName,
491 * IDL [in] [string] [ref] wchar_t *DevName,
492 * IDL [in] long Opcode
496 srvsvc_dissect_netrchardevcontrol_rqst(tvbuff_t *tvb, int offset,
497 packet_info *pinfo, proto_tree *tree,
500 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
501 srvsvc_dissect_pointer_UNICODE_STRING,
502 NDR_POINTER_UNIQUE, "Server",
503 hf_srvsvc_server, 0);
505 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
506 srvsvc_dissect_pointer_UNICODE_STRING,
507 NDR_POINTER_REF, "Char Device",
508 hf_srvsvc_chrdev, 0);
510 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
511 hf_srvsvc_chrdev_opcode, 0);
519 * IDL typedef struct {
520 * IDL [string] [unique] wchar_t *dev;
521 * IDL } CHARDEVQ_INFO_0;
524 srvsvc_dissect_CHARDEVQ_INFO_0(tvbuff_t *tvb, int offset,
525 packet_info *pinfo, proto_tree *tree,
528 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
529 srvsvc_dissect_pointer_UNICODE_STRING,
530 NDR_POINTER_UNIQUE, "Char QDevice",
531 hf_srvsvc_chrdev, 0);
536 srvsvc_dissect_CHARDEVQ_INFO_0_array(tvbuff_t *tvb, int offset,
537 packet_info *pinfo, proto_tree *tree,
540 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
541 srvsvc_dissect_CHARDEVQ_INFO_0);
547 * IDL typedef struct {
548 * IDL long EntriesRead;
549 * IDL [size_is(EntriesRead)] [unique] CHARDEVQ_INFO_0 *devs;
550 * IDL } CHARDEVQ_INFO_0_CONTAINER;
553 srvsvc_dissect_CHARDEVQ_INFO_0_CONTAINER(tvbuff_t *tvb, int offset,
554 packet_info *pinfo, proto_tree *tree,
557 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
558 hf_srvsvc_num_entries, NULL);
560 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
561 srvsvc_dissect_CHARDEVQ_INFO_0_array, NDR_POINTER_UNIQUE,
562 "CHARDEVQ_INFO_0 array:", -1, 0);
568 * IDL typedef struct {
569 * IDL [string] [unique] wchar_t *dev;
571 * IDL [string] [unique] wchar_t *devs;
573 * IDL long num_ahead;
574 * IDL } CHARDEVQ_INFO_1;
577 srvsvc_dissect_CHARDEVQ_INFO_1(tvbuff_t *tvb, int offset,
578 packet_info *pinfo, proto_tree *tree,
581 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
582 srvsvc_dissect_pointer_UNICODE_STRING,
583 NDR_POINTER_UNIQUE, "Char Device",
584 hf_srvsvc_chrdev, 0);
586 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
587 hf_srvsvc_chrqpri, 0);
589 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
590 srvsvc_dissect_pointer_UNICODE_STRING,
591 NDR_POINTER_UNIQUE, "Char Devices",
592 hf_srvsvc_chrdevq, 0);
594 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
595 hf_srvsvc_chrqnumusers, 0);
597 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
598 hf_srvsvc_chrqnumahead, 0);
603 srvsvc_dissect_CHARDEVQ_INFO_1_array(tvbuff_t *tvb, int offset,
604 packet_info *pinfo, proto_tree *tree,
607 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
608 srvsvc_dissect_CHARDEVQ_INFO_1);
614 * IDL typedef struct {
615 * IDL long EntriesRead;
616 * IDL [size_is(EntriesRead)] [unique] CHARDEVQ_INFO_1 *devs;
617 * IDL } CHARDEVQ_INFO_1_CONTAINER;
620 srvsvc_dissect_CHARDEVQ_INFO_1_CONTAINER(tvbuff_t *tvb, int offset,
621 packet_info *pinfo, proto_tree *tree,
624 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
625 hf_srvsvc_num_entries, NULL);
627 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
628 srvsvc_dissect_CHARDEVQ_INFO_1_array, NDR_POINTER_UNIQUE,
629 "CHARDEVQ_INFO_1 array:", -1, 3);
635 * IDL typedef [switch_type(long)] union {
636 * IDL [case(0)] [unique] CHARDEVQ_INFO_0_CONTAINER *dev0;
637 * IDL [case(1)] [unique] CHARDEVQ_INFO_1_CONTAINER *dev1;
638 * IDL } CHARDEVQ_ENUM_UNION;
641 srvsvc_dissect_CHARDEVQ_ENUM_UNION(tvbuff_t *tvb, int offset,
642 packet_info *pinfo, proto_tree *tree,
649 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_info_level, &level);
653 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
654 srvsvc_dissect_CHARDEVQ_INFO_0_CONTAINER,
655 NDR_POINTER_UNIQUE, "CHARDEVQ_INFO_0_CONTAINER:",
659 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
660 srvsvc_dissect_CHARDEVQ_INFO_1_CONTAINER,
661 NDR_POINTER_UNIQUE, "CHARDEVQ_INFO_1_CONTAINER:",
670 * IDL typedef struct {
672 * IDL CHARDEVQ_ENUM_UNION devs;
673 * IDL } CHARDEVQ_ENUM_STRUCT;
676 srvsvc_dissect_CHARDEVQ_ENUM_STRUCT(tvbuff_t *tvb, int offset,
677 packet_info *pinfo, proto_tree *tree,
680 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
681 hf_srvsvc_info_level, 0);
683 offset = srvsvc_dissect_CHARDEVQ_ENUM_UNION(tvb, offset, pinfo, tree, drep);
689 * IDL typedef [switch_type(long)] union {
690 * IDL [case(0)] [unique] CHARDEVQ_INFO_0 *dev0;
691 * IDL [case(1)] [unique] CHARDEVQ_INFO_1 *dev1;
692 * IDL } CHARDEVQ_INFO;
695 srvsvc_dissect_CHARDEVQ_INFO(tvbuff_t *tvb, int offset,
696 packet_info *pinfo, proto_tree *tree,
703 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_info_level, &level);
707 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
708 srvsvc_dissect_CHARDEVQ_INFO_0,
709 NDR_POINTER_UNIQUE, "CHARDEVQ_INFO_0:",
713 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
714 srvsvc_dissect_CHARDEVQ_INFO_1,
715 NDR_POINTER_UNIQUE, "CHARDEVQ_INFO_1:",
724 /* XXX dont know the out parameters. only the in parameters.
726 * IDL long NetrCharDevQEnum(
727 * IDL [in] [string] [unique] wchar_t *ServerName,
728 * IDL [in] [string] [unique] wchar_t *UserName,
729 * IDL [in] [ref] CHARDEVQ_ENUM_STRUCT *devs,
730 * IDL [in] long PreferredMaximumLength,
731 * IDL [in] [unique] long *ResumeHandle
735 srvsvc_dissect_netrchardevqenum_rqst(tvbuff_t *tvb, int offset,
736 packet_info *pinfo, proto_tree *tree,
739 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
740 srvsvc_dissect_pointer_UNICODE_STRING,
741 NDR_POINTER_UNIQUE, "Server",
742 hf_srvsvc_server, 0);
744 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
745 srvsvc_dissect_pointer_UNICODE_STRING,
746 NDR_POINTER_UNIQUE, "User",
749 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
750 srvsvc_dissect_CHARDEVQ_ENUM_STRUCT,
751 NDR_POINTER_REF, "CHARDEVQ_ENUM_STRUCT",
754 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
755 hf_srvsvc_preferred_len, 0);
757 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
758 srvsvc_dissect_ENUM_HANDLE,
759 NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
764 /* XXX dont know the out parameters. only the in parameters.
766 * IDL long NetrCharDevQGetInfo(
767 * IDL [in] [string] [unique] wchar_t *ServerName,
768 * IDL [in] [string] [ref] wchar_t *QueueName,
769 * IDL [in] [string] [ref] wchar_t *UserName,
770 * IDL [in] long Level
774 srvsvc_dissect_netrchardevqgetinfo_rqst(tvbuff_t *tvb, int offset,
775 packet_info *pinfo, proto_tree *tree,
778 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
779 srvsvc_dissect_pointer_UNICODE_STRING,
780 NDR_POINTER_UNIQUE, "Server",
781 hf_srvsvc_server, 0);
783 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
784 srvsvc_dissect_pointer_UNICODE_STRING,
785 NDR_POINTER_REF, "Device Queue",
786 hf_srvsvc_chrdevq, 0);
788 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
789 srvsvc_dissect_pointer_UNICODE_STRING,
790 NDR_POINTER_REF, "User",
793 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
794 hf_srvsvc_info_level, NULL);
799 /* XXX dont know the out parameters. only the in parameters.
801 * IDL long NetrCharDevQSetInfo(
802 * IDL [in] [string] [unique] wchar_t *ServerName,
803 * IDL [in] [string] [ref] wchar_t *QueueName,
804 * IDL [in] long Level,
805 * IDL [in] [ref] CHARDEVQ_INFO *dev,
806 * IDL [in] [unique] long *ParmError
810 srvsvc_dissect_netrchardevqsetinfo_rqst(tvbuff_t *tvb, int offset,
811 packet_info *pinfo, proto_tree *tree,
814 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
815 srvsvc_dissect_pointer_UNICODE_STRING,
816 NDR_POINTER_UNIQUE, "Server",
817 hf_srvsvc_server, 0);
819 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
820 srvsvc_dissect_pointer_UNICODE_STRING,
821 NDR_POINTER_REF, "Device Queue",
822 hf_srvsvc_chrdevq, 0);
824 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
825 hf_srvsvc_info_level, NULL);
827 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
828 srvsvc_dissect_CHARDEVQ_INFO,
829 NDR_POINTER_REF, "CHARDEVQ_INFO",
832 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
833 srvsvc_dissect_pointer_long, NDR_POINTER_UNIQUE,
834 "Parameter Error:", hf_srvsvc_parm_error, 0);
839 /* XXX dont know the out parameters. only the in parameters.
841 * IDL long NetrCharDevQPurge(
842 * IDL [in] [string] [unique] wchar_t *ServerName,
843 * IDL [in] [string] [ref] wchar_t *QueueName
847 srvsvc_dissect_netrchardevqpurge_rqst(tvbuff_t *tvb, int offset,
848 packet_info *pinfo, proto_tree *tree,
851 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
852 srvsvc_dissect_pointer_UNICODE_STRING,
853 NDR_POINTER_UNIQUE, "Server",
854 hf_srvsvc_server, 0);
856 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
857 srvsvc_dissect_pointer_UNICODE_STRING,
858 NDR_POINTER_REF, "Device Queue",
859 hf_srvsvc_chrdevq, 0);
864 /* XXX dont know the out parameters. only the in parameters.
866 * IDL long NetrCharDevQPurge(
867 * IDL [in] [string] [unique] wchar_t *ServerName,
868 * IDL [in] [string] [ref] wchar_t *QueueName
869 * IDL [in] [string] [ref] wchar_t *ComputerName
873 srvsvc_dissect_netrchardevqpurgeself_rqst(tvbuff_t *tvb, int offset,
874 packet_info *pinfo, proto_tree *tree,
877 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
878 srvsvc_dissect_pointer_UNICODE_STRING,
879 NDR_POINTER_UNIQUE, "Server",
880 hf_srvsvc_server, 0);
882 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
883 srvsvc_dissect_pointer_UNICODE_STRING,
884 NDR_POINTER_REF, "Device Queue",
885 hf_srvsvc_chrdevq, 0);
887 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
888 srvsvc_dissect_pointer_UNICODE_STRING,
889 NDR_POINTER_REF, "Computer",
890 hf_srvsvc_computer, 0);
898 * IDL typedef struct {
900 * IDL } CONNECT_INFO_0;
903 srvsvc_dissect_CONNECT_INFO_0(tvbuff_t *tvb, int offset,
904 packet_info *pinfo, proto_tree *tree,
907 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
908 hf_srvsvc_con_id, NULL);
913 srvsvc_dissect_CONNECT_INFO_0_array(tvbuff_t *tvb, int offset,
914 packet_info *pinfo, proto_tree *tree,
917 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
918 srvsvc_dissect_CONNECT_INFO_0);
924 * IDL typedef struct {
925 * IDL long EntriesRead;
926 * IDL [size_is(EntriesRead)] [unique] CONNECT_INFO_0 *cons;
927 * IDL } CONNECT_INFO_0_CONTAINER;
930 srvsvc_dissect_CONNECT_INFO_0_CONTAINER(tvbuff_t *tvb, int offset,
931 packet_info *pinfo, proto_tree *tree,
934 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
935 hf_srvsvc_num_entries, NULL);
937 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
938 srvsvc_dissect_CONNECT_INFO_0_array, NDR_POINTER_UNIQUE,
939 "CONNECT_INFO_0 array:", -1, 0);
946 * IDL typedef struct {
949 * IDL long num_opens;
952 * IDL [string] [unique] wchar_t *username;
953 * IDL [string] [unique] wchar_t *share;
954 * IDL } CONNECT_INFO_1;
957 srvsvc_dissect_CONNECT_INFO_1(tvbuff_t *tvb, int offset,
958 packet_info *pinfo, proto_tree *tree,
961 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
962 hf_srvsvc_con_id, NULL);
964 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
965 hf_srvsvc_con_type, NULL);
967 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
968 hf_srvsvc_con_num_opens, NULL);
970 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
971 hf_srvsvc_users, NULL);
973 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
974 hf_srvsvc_con_time, NULL);
976 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
977 srvsvc_dissect_pointer_UNICODE_STRING,
978 NDR_POINTER_UNIQUE, "User",
981 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
982 srvsvc_dissect_pointer_UNICODE_STRING,
983 NDR_POINTER_UNIQUE, "Share",
989 srvsvc_dissect_CONNECT_INFO_1_array(tvbuff_t *tvb, int offset,
990 packet_info *pinfo, proto_tree *tree,
993 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
994 srvsvc_dissect_CONNECT_INFO_1);
1000 * IDL typedef struct {
1001 * IDL long EntriesRead;
1002 * IDL [size_is(EntriesRead)] [unique] CONNECT_INFO_0 *cons;
1003 * IDL } CONNECT_INFO_1_CONTAINER;
1006 srvsvc_dissect_CONNECT_INFO_1_CONTAINER(tvbuff_t *tvb, int offset,
1007 packet_info *pinfo, proto_tree *tree,
1010 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1011 hf_srvsvc_num_entries, NULL);
1013 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1014 srvsvc_dissect_CONNECT_INFO_1_array, NDR_POINTER_UNIQUE,
1015 "CONNECT_INFO_1 array:", -1, 0);
1022 * IDL typedef [switch_type(long)] union {
1023 * IDL [case(0)] [unique] CONNECT_INFO_0_CONTAINER *con0;
1024 * IDL [case(1)] [unique] CONNECT_INFO_1_CONTAINER *con1;
1025 * IDL } CONNECT_ENUM_UNION;
1028 srvsvc_dissect_CONNECT_ENUM_UNION(tvbuff_t *tvb, int offset,
1029 packet_info *pinfo, proto_tree *tree,
1036 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_info_level, &level);
1040 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1041 srvsvc_dissect_CONNECT_INFO_0_CONTAINER,
1042 NDR_POINTER_UNIQUE, "CONNECT_INFO_0_CONTAINER:",
1046 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1047 srvsvc_dissect_CONNECT_INFO_1_CONTAINER,
1048 NDR_POINTER_UNIQUE, "CONNECT_INFO_1_CONTAINER:",
1058 * IDL typedef struct {
1060 * IDL CONNECT_ENUM_UNION devs;
1061 * IDL } CONNECT_ENUM_STRUCT;
1064 srvsvc_dissect_CONNECT_ENUM_STRUCT(tvbuff_t *tvb, int offset,
1065 packet_info *pinfo, proto_tree *tree,
1068 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1069 hf_srvsvc_info_level, 0);
1071 offset = srvsvc_dissect_CONNECT_ENUM_UNION(tvb, offset, pinfo, tree, drep);
1077 /* XXX dont know the out parameters. only the in parameters.
1079 * IDL long NetrConnectionEnum(
1080 * IDL [in] [string] [unique] wchar_t *ServerName,
1081 * IDL [in] [string] [unique] wchar_t *Qualifier,
1082 * IDL [in] [ref] CONNECT_ENUM_STRUCT *con,
1083 * IDL [in] long MaxLen,
1084 * IDL [in] [unique] long *ResumeHandle
1088 srvsvc_dissect_netrconnectionenum_rqst(tvbuff_t *tvb, int offset,
1089 packet_info *pinfo, proto_tree *tree,
1092 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1093 srvsvc_dissect_pointer_UNICODE_STRING,
1094 NDR_POINTER_UNIQUE, "Server",
1095 hf_srvsvc_server, 0);
1097 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1098 srvsvc_dissect_pointer_UNICODE_STRING,
1099 NDR_POINTER_UNIQUE, "Qualifier",
1100 hf_srvsvc_qualifier, 0);
1102 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1103 srvsvc_dissect_CONNECT_ENUM_STRUCT,
1104 NDR_POINTER_REF, "CONNECT_ENUM_STRUCT:",
1107 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1108 hf_srvsvc_preferred_len, 0);
1110 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1111 srvsvc_dissect_ENUM_HANDLE,
1112 NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
1119 * IDL typedef struct {
1121 * IDL } FILE_INFO_2;
1124 srvsvc_dissect_FILE_INFO_2(tvbuff_t *tvb, int offset,
1125 packet_info *pinfo, proto_tree *tree,
1128 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1129 hf_srvsvc_file_id, NULL);
1134 srvsvc_dissect_FILE_INFO_2_array(tvbuff_t *tvb, int offset,
1135 packet_info *pinfo, proto_tree *tree,
1138 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
1139 srvsvc_dissect_FILE_INFO_2);
1145 * IDL typedef struct {
1146 * IDL long EntriesRead;
1147 * IDL [size_is(EntriesRead)] [unique] FILE_INFO_2 *files;
1148 * IDL } FILE_INFO_2_CONTAINER;
1151 srvsvc_dissect_FILE_INFO_2_CONTAINER(tvbuff_t *tvb, int offset,
1152 packet_info *pinfo, proto_tree *tree,
1155 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1156 hf_srvsvc_num_entries, NULL);
1158 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1159 srvsvc_dissect_FILE_INFO_2_array, NDR_POINTER_UNIQUE,
1160 "FILE_INFO_2 array:", -1, 0);
1167 * IDL typedef struct {
1169 * IDL long permissions;
1170 * IDL long num_locks;
1171 * IDL [string] [unique] wchar_t *pathname;
1172 * IDL [string] [unique] wchar_t *username;
1173 * IDL } FILE_INFO_3;
1176 srvsvc_dissect_FILE_INFO_3(tvbuff_t *tvb, int offset,
1177 packet_info *pinfo, proto_tree *tree,
1180 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1181 hf_srvsvc_file_id, NULL);
1183 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1184 hf_srvsvc_perm, NULL);
1186 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1187 hf_srvsvc_file_num_locks, NULL);
1189 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1190 srvsvc_dissect_pointer_UNICODE_STRING,
1191 NDR_POINTER_UNIQUE, "Path",
1194 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1195 srvsvc_dissect_pointer_UNICODE_STRING,
1196 NDR_POINTER_UNIQUE, "User",
1202 srvsvc_dissect_FILE_INFO_3_array(tvbuff_t *tvb, int offset,
1203 packet_info *pinfo, proto_tree *tree,
1206 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
1207 srvsvc_dissect_FILE_INFO_3);
1213 * IDL typedef struct {
1214 * IDL long EntriesRead;
1215 * IDL [size_is(EntriesRead)] [unique] FILE_INFO_3 *files;
1216 * IDL } FILE_INFO_3_CONTAINER;
1219 srvsvc_dissect_FILE_INFO_3_CONTAINER(tvbuff_t *tvb, int offset,
1220 packet_info *pinfo, proto_tree *tree,
1223 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1224 hf_srvsvc_num_entries, NULL);
1226 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1227 srvsvc_dissect_FILE_INFO_3_array, NDR_POINTER_UNIQUE,
1228 "CHARDEV_INFO_3 array:", -1, 0);
1235 * IDL typedef [switch_type(long)] union {
1236 * IDL [case(2)] [unique] FILE_INFO_2_CONTAINER *file0;
1237 * IDL [case(3)] [unique] FILE_INFO_3_CONTAINER *file1;
1238 * IDL } FILE_ENUM_UNION;
1241 srvsvc_dissect_FILE_ENUM_UNION(tvbuff_t *tvb, int offset,
1242 packet_info *pinfo, proto_tree *tree,
1249 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_info_level, &level);
1253 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1254 srvsvc_dissect_FILE_INFO_2_CONTAINER,
1255 NDR_POINTER_UNIQUE, "FILE_INFO_2_CONTAINER:",
1259 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1260 srvsvc_dissect_FILE_INFO_3_CONTAINER,
1261 NDR_POINTER_UNIQUE, "FILE_INFO_3_CONTAINER:",
1271 * IDL typedef struct {
1273 * IDL FILE_ENUM_UNION files;
1274 * IDL } FILE_ENUM_STRUCT;
1277 srvsvc_dissect_FILE_ENUM_STRUCT(tvbuff_t *tvb, int offset,
1278 packet_info *pinfo, proto_tree *tree,
1281 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1282 hf_srvsvc_info_level, 0);
1284 offset = srvsvc_dissect_FILE_ENUM_UNION(tvb, offset, pinfo, tree, drep);
1290 /* XXX dont know the out parameters. only the in parameters.
1292 * IDL long NetrFileEnum(
1293 * IDL [in] [string] [unique] wchar_t *ServerName,
1294 * IDL [in] [string] [unique] wchar_t *Path,
1295 * IDL [in] [string] [unique] wchar_t *UserName,
1296 * IDL [in] [ref] FILE_ENUM_STRUCT *file,
1297 * IDL [in] long MaxLen,
1298 * IDL [in] [unique] long *ResumeHandle
1302 srvsvc_dissect_netrfileenum_rqst(tvbuff_t *tvb, int offset,
1303 packet_info *pinfo, proto_tree *tree,
1306 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1307 srvsvc_dissect_pointer_UNICODE_STRING,
1308 NDR_POINTER_UNIQUE, "Server",
1309 hf_srvsvc_server, 0);
1311 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1312 srvsvc_dissect_pointer_UNICODE_STRING,
1313 NDR_POINTER_UNIQUE, "Path",
1316 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1317 srvsvc_dissect_pointer_UNICODE_STRING,
1318 NDR_POINTER_UNIQUE, "User",
1321 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1322 srvsvc_dissect_FILE_ENUM_STRUCT,
1323 NDR_POINTER_REF, "FILE_ENUM_STRUCT:",
1326 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1327 hf_srvsvc_preferred_len, 0);
1329 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1330 srvsvc_dissect_ENUM_HANDLE,
1331 NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
1337 /* XXX dont know the out parameters. only the in parameters.
1339 * IDL long NetrFileGetInfo(
1340 * IDL [in] [string] [unique] wchar_t *ServerName,
1341 * IDL [in] long fileid,
1342 * IDL [in] long level,
1346 srvsvc_dissect_netrfilegetinfo_rqst(tvbuff_t *tvb, int offset,
1347 packet_info *pinfo, proto_tree *tree,
1350 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1351 srvsvc_dissect_pointer_UNICODE_STRING,
1352 NDR_POINTER_UNIQUE, "Server",
1353 hf_srvsvc_server, 0);
1355 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1356 hf_srvsvc_file_id, NULL);
1358 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1359 hf_srvsvc_info_level, 0);
1365 /* XXX dont know the out parameters. only the in parameters.
1367 * IDL long NetrFileClose(
1368 * IDL [in] [string] [unique] wchar_t *ServerName,
1369 * IDL [in] long fileid,
1373 srvsvc_dissect_netrfileclose_rqst(tvbuff_t *tvb, int offset,
1374 packet_info *pinfo, proto_tree *tree,
1377 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1378 srvsvc_dissect_pointer_UNICODE_STRING,
1379 NDR_POINTER_UNIQUE, "Server",
1380 hf_srvsvc_server, 0);
1382 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1383 hf_srvsvc_file_id, NULL);
1389 * IDL typedef struct {
1390 * IDL [string] [unique] wchar_t *ses;
1391 * IDL } SESSION_INFO_0;
1394 srvsvc_dissect_SESSION_INFO_0(tvbuff_t *tvb, int offset,
1395 packet_info *pinfo, proto_tree *tree,
1398 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1399 srvsvc_dissect_pointer_UNICODE_STRING,
1400 NDR_POINTER_UNIQUE, "Session",
1401 hf_srvsvc_session, 0);
1406 srvsvc_dissect_SESSION_INFO_0_array(tvbuff_t *tvb, int offset,
1407 packet_info *pinfo, proto_tree *tree,
1410 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
1411 srvsvc_dissect_SESSION_INFO_0);
1417 * IDL typedef struct {
1418 * IDL long EntriesRead;
1419 * IDL [size_is(EntriesRead)] [unique] SESSION_INFO_0 *ses;
1420 * IDL } SESSION_INFO_0_CONTAINER;
1423 srvsvc_dissect_SESSION_INFO_0_CONTAINER(tvbuff_t *tvb, int offset,
1424 packet_info *pinfo, proto_tree *tree,
1427 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1428 hf_srvsvc_num_entries, NULL);
1430 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1431 srvsvc_dissect_SESSION_INFO_0_array, NDR_POINTER_UNIQUE,
1432 "SESSION_INFO_0 array:", -1, 0);
1438 * IDL typedef struct {
1439 * IDL [string] [unique] wchar_t *ses;
1440 * IDL [string] [unique] wchar_t *user;
1441 * IDL long num_open;
1443 * IDL long idle_time;
1444 * IDL long user_flags
1445 * IDL } SESSION_INFO_1;
1448 srvsvc_dissect_SESSION_INFO_1(tvbuff_t *tvb, int offset,
1449 packet_info *pinfo, proto_tree *tree,
1452 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1453 srvsvc_dissect_pointer_UNICODE_STRING,
1454 NDR_POINTER_UNIQUE, "Session",
1455 hf_srvsvc_session, 0);
1457 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1458 srvsvc_dissect_pointer_UNICODE_STRING,
1459 NDR_POINTER_UNIQUE, "User",
1462 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1463 hf_srvsvc_session_num_opens, NULL);
1465 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1466 hf_srvsvc_session_time, NULL);
1468 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1469 hf_srvsvc_session_idle_time, NULL);
1471 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1472 hf_srvsvc_session_user_flags, NULL);
1477 srvsvc_dissect_SESSION_INFO_1_array(tvbuff_t *tvb, int offset,
1478 packet_info *pinfo, proto_tree *tree,
1481 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
1482 srvsvc_dissect_SESSION_INFO_1);
1488 * IDL typedef struct {
1489 * IDL long EntriesRead;
1490 * IDL [size_is(EntriesRead)] [unique] SESSION_INFO_1 *ses;
1491 * IDL } SESSION_INFO_1_CONTAINER;
1494 srvsvc_dissect_SESSION_INFO_1_CONTAINER(tvbuff_t *tvb, int offset,
1495 packet_info *pinfo, proto_tree *tree,
1498 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1499 hf_srvsvc_num_entries, NULL);
1501 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1502 srvsvc_dissect_SESSION_INFO_1_array, NDR_POINTER_UNIQUE,
1503 "SESSION_INFO_1 array:", -1, 0);
1509 * IDL typedef struct {
1510 * IDL [string] [unique] wchar_t *ses;
1511 * IDL [string] [unique] wchar_t *user;
1512 * IDL long num_open;
1514 * IDL long idle_time;
1515 * IDL long user_flags
1516 * IDL [string] [unique] wchar_t *clienttype;
1517 * IDL } SESSION_INFO_2;
1520 srvsvc_dissect_SESSION_INFO_2(tvbuff_t *tvb, int offset,
1521 packet_info *pinfo, proto_tree *tree,
1524 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1525 srvsvc_dissect_pointer_UNICODE_STRING,
1526 NDR_POINTER_UNIQUE, "Session",
1527 hf_srvsvc_session, 0);
1529 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1530 srvsvc_dissect_pointer_UNICODE_STRING,
1531 NDR_POINTER_UNIQUE, "User",
1534 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1535 hf_srvsvc_session_num_opens, NULL);
1537 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1538 hf_srvsvc_session_time, NULL);
1540 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1541 hf_srvsvc_session_idle_time, NULL);
1543 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1544 hf_srvsvc_session_user_flags, NULL);
1546 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1547 srvsvc_dissect_pointer_UNICODE_STRING,
1548 NDR_POINTER_UNIQUE, "Client Type:",
1549 hf_srvsvc_client_type, 0);
1554 srvsvc_dissect_SESSION_INFO_2_array(tvbuff_t *tvb, int offset,
1555 packet_info *pinfo, proto_tree *tree,
1558 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
1559 srvsvc_dissect_SESSION_INFO_2);
1565 * IDL typedef struct {
1566 * IDL long EntriesRead;
1567 * IDL [size_is(EntriesRead)] [unique] SESSION_INFO_2 *ses;
1568 * IDL } SESSION_INFO_2_CONTAINER;
1571 srvsvc_dissect_SESSION_INFO_2_CONTAINER(tvbuff_t *tvb, int offset,
1572 packet_info *pinfo, proto_tree *tree,
1575 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1576 hf_srvsvc_num_entries, NULL);
1578 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1579 srvsvc_dissect_SESSION_INFO_2_array, NDR_POINTER_UNIQUE,
1580 "SESSION_INFO_2 array:", -1, 0);
1586 * IDL typedef struct {
1587 * IDL [string] [unique] wchar_t *ses;
1588 * IDL [string] [unique] wchar_t *user;
1590 * IDL long idle_time;
1591 * IDL } SESSION_INFO_10;
1594 srvsvc_dissect_SESSION_INFO_10(tvbuff_t *tvb, int offset,
1595 packet_info *pinfo, proto_tree *tree,
1598 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1599 srvsvc_dissect_pointer_UNICODE_STRING,
1600 NDR_POINTER_UNIQUE, "Session",
1601 hf_srvsvc_session, 0);
1603 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1604 srvsvc_dissect_pointer_UNICODE_STRING,
1605 NDR_POINTER_UNIQUE, "User",
1608 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1609 hf_srvsvc_session_time, NULL);
1611 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1612 hf_srvsvc_session_idle_time, NULL);
1617 srvsvc_dissect_SESSION_INFO_10_array(tvbuff_t *tvb, int offset,
1618 packet_info *pinfo, proto_tree *tree,
1621 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
1622 srvsvc_dissect_SESSION_INFO_10);
1628 * IDL typedef struct {
1629 * IDL long EntriesRead;
1630 * IDL [size_is(EntriesRead)] [unique] SESSION_INFO_10 *ses;
1631 * IDL } SESSION_INFO_10_CONTAINER;
1634 srvsvc_dissect_SESSION_INFO_10_CONTAINER(tvbuff_t *tvb, int offset,
1635 packet_info *pinfo, proto_tree *tree,
1638 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1639 hf_srvsvc_num_entries, NULL);
1641 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1642 srvsvc_dissect_SESSION_INFO_10_array, NDR_POINTER_UNIQUE,
1643 "SESSION_INFO_10 array:", -1, 0);
1649 * IDL typedef struct {
1650 * IDL [string] [unique] wchar_t *ses;
1651 * IDL [string] [unique] wchar_t *user;
1652 * IDL long num_open;
1654 * IDL long idle_time;
1655 * IDL long user_flags
1656 * IDL [string] [unique] wchar_t *clienttype;
1657 * IDL [string] [unique] wchar_t *transport;
1658 * IDL } SESSION_INFO_502;
1661 srvsvc_dissect_SESSION_INFO_502(tvbuff_t *tvb, int offset,
1662 packet_info *pinfo, proto_tree *tree,
1665 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1666 srvsvc_dissect_pointer_UNICODE_STRING,
1667 NDR_POINTER_UNIQUE, "Session",
1668 hf_srvsvc_session, 0);
1670 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1671 srvsvc_dissect_pointer_UNICODE_STRING,
1672 NDR_POINTER_UNIQUE, "User",
1675 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1676 hf_srvsvc_session_num_opens, NULL);
1678 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1679 hf_srvsvc_session_time, NULL);
1681 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1682 hf_srvsvc_session_idle_time, NULL);
1684 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1685 hf_srvsvc_session_user_flags, NULL);
1687 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1688 srvsvc_dissect_pointer_UNICODE_STRING,
1689 NDR_POINTER_UNIQUE, "Client Type:",
1690 hf_srvsvc_client_type, 0);
1692 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1693 srvsvc_dissect_pointer_UNICODE_STRING,
1694 NDR_POINTER_UNIQUE, "Transport:",
1695 hf_srvsvc_transport, 0);
1700 srvsvc_dissect_SESSION_INFO_502_array(tvbuff_t *tvb, int offset,
1701 packet_info *pinfo, proto_tree *tree,
1704 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
1705 srvsvc_dissect_SESSION_INFO_502);
1711 * IDL typedef struct {
1712 * IDL long EntriesRead;
1713 * IDL [size_is(EntriesRead)] [unique] SESSION_INFO_502 *ses;
1714 * IDL } SESSION_INFO_502_CONTAINER;
1717 srvsvc_dissect_SESSION_INFO_502_CONTAINER(tvbuff_t *tvb, int offset,
1718 packet_info *pinfo, proto_tree *tree,
1721 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1722 hf_srvsvc_num_entries, NULL);
1724 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1725 srvsvc_dissect_SESSION_INFO_502_array, NDR_POINTER_UNIQUE,
1726 "SESSION_INFO_502 array:", -1, 0);
1732 * IDL typedef [switch_type(long)] union {
1733 * IDL [case(0)] [unique] SESSION_INFO_0_CONTAINER *ses0;
1734 * IDL [case(1)] [unique] SESSION_INFO_1_CONTAINER *ses1;
1735 * IDL [case(2)] [unique] SESSION_INFO_2_CONTAINER *ses2;
1736 * IDL [case(10)] [unique] SESSION_INFO_10_CONTAINER *ses10;
1737 * IDL [case(502)] [unique] SESSION_INFO_502_CONTAINER *ses502;
1738 * IDL } SESSION_ENUM_UNION;
1741 srvsvc_dissect_SESSION_ENUM_UNION(tvbuff_t *tvb, int offset,
1742 packet_info *pinfo, proto_tree *tree,
1749 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_info_level, &level);
1753 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1754 srvsvc_dissect_SESSION_INFO_0_CONTAINER,
1755 NDR_POINTER_UNIQUE, "SESSION_INFO_0_CONTAINER:",
1759 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1760 srvsvc_dissect_SESSION_INFO_1_CONTAINER,
1761 NDR_POINTER_UNIQUE, "SESSION_INFO_1_CONTAINER:",
1765 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1766 srvsvc_dissect_SESSION_INFO_2_CONTAINER,
1767 NDR_POINTER_UNIQUE, "SESSION_INFO_2_CONTAINER:",
1771 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1772 srvsvc_dissect_SESSION_INFO_10_CONTAINER,
1773 NDR_POINTER_UNIQUE, "SESSION_INFO_10_CONTAINER:",
1777 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1778 srvsvc_dissect_SESSION_INFO_502_CONTAINER,
1779 NDR_POINTER_UNIQUE, "SESSION_INFO_502_CONTAINER:",
1788 * IDL typedef struct {
1790 * IDL SESSION_ENUM_UNION ses;
1791 * IDL } SESSION_ENUM_STRUCT;
1794 srvsvc_dissect_SESSION_ENUM_STRUCT(tvbuff_t *tvb, int offset,
1795 packet_info *pinfo, proto_tree *tree,
1798 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1799 hf_srvsvc_info_level, 0);
1801 offset = srvsvc_dissect_SESSION_ENUM_UNION(tvb, offset, pinfo, tree, drep);
1807 /* XXX dont know the out parameters. only the in parameters.
1809 * IDL long NetrSessionEnum(
1810 * IDL [in] [string] [unique] wchar_t *ServerName,
1811 * IDL [in] [string] [unique] wchar_t *ClientName,
1812 * IDL [in] [string] [unique] wchar_t *UserName,
1813 * IDL [in] [ref] SESSION_ENUM_STRUCT *ses,
1814 * IDL [in] long maxlen,
1815 * IDL [in] [unique] long *resumehandle,
1819 srvsvc_dissect_netrsessionenum_rqst(tvbuff_t *tvb, int offset,
1820 packet_info *pinfo, proto_tree *tree,
1823 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1824 srvsvc_dissect_pointer_UNICODE_STRING,
1825 NDR_POINTER_UNIQUE, "Server",
1826 hf_srvsvc_server, 0);
1828 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1829 srvsvc_dissect_pointer_UNICODE_STRING,
1830 NDR_POINTER_UNIQUE, "Computer",
1831 hf_srvsvc_computer, 0);
1833 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1834 srvsvc_dissect_pointer_UNICODE_STRING,
1835 NDR_POINTER_UNIQUE, "User",
1838 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1839 srvsvc_dissect_SESSION_ENUM_STRUCT,
1840 NDR_POINTER_REF, "SESSION_ENUM_STRUCT",
1843 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1844 hf_srvsvc_preferred_len, 0);
1846 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1847 srvsvc_dissect_ENUM_HANDLE,
1848 NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
1853 /* XXX dont know the out parameters. only the in parameters.
1855 * IDL long NetrSessionDel(
1856 * IDL [in] [string] [unique] wchar_t *ServerName,
1857 * IDL [in] [string] [ref] wchar_t *ClientName,
1858 * IDL [in] [string] [ref] wchar_t *UserName,
1862 srvsvc_dissect_netrsessiondel_rqst(tvbuff_t *tvb, int offset,
1863 packet_info *pinfo, proto_tree *tree,
1866 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1867 srvsvc_dissect_pointer_UNICODE_STRING,
1868 NDR_POINTER_UNIQUE, "Server",
1869 hf_srvsvc_server, 0);
1871 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1872 srvsvc_dissect_pointer_UNICODE_STRING,
1873 NDR_POINTER_REF, "Computer",
1874 hf_srvsvc_computer, 0);
1876 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1877 srvsvc_dissect_pointer_UNICODE_STRING,
1878 NDR_POINTER_REF, "User",
1885 * IDL typedef struct {
1886 * IDL [string] [unique] wchar_t *share;
1887 * IDL } SHARE_INFO_0;
1890 srvsvc_dissect_SHARE_INFO_0(tvbuff_t *tvb, int offset,
1891 packet_info *pinfo, proto_tree *tree,
1894 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1895 srvsvc_dissect_pointer_UNICODE_STRING,
1896 NDR_POINTER_UNIQUE, "Share",
1897 hf_srvsvc_share, 0);
1902 srvsvc_dissect_SHARE_INFO_0_array(tvbuff_t *tvb, int offset,
1903 packet_info *pinfo, proto_tree *tree,
1906 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
1907 srvsvc_dissect_SHARE_INFO_0);
1913 * IDL typedef struct {
1914 * IDL long EntriesRead;
1915 * IDL [size_is(EntriesRead)] [unique] SHARE_INFO_0 *shares;
1916 * IDL } SHARE_INFO_0_CONTAINER;
1919 srvsvc_dissect_SHARE_INFO_0_CONTAINER(tvbuff_t *tvb, int offset,
1920 packet_info *pinfo, proto_tree *tree,
1923 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1924 hf_srvsvc_num_entries, NULL);
1926 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1927 srvsvc_dissect_SHARE_INFO_0_array, NDR_POINTER_UNIQUE,
1928 "SHARE_INFO_0 array:", -1, 0);
1934 IDL typedef struct {
1935 IDL [unique] [string] wchar_t *share;
1937 IDL [unique] [string] wchar_t *comment;
1941 srvsvc_dissect_SHARE_INFO_1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, char *drep)
1943 proto_item *item = NULL;
1944 proto_tree *tree = NULL;
1948 di=pinfo->private_data;
1950 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "Share");
1951 tree = proto_item_add_subtree(item, ett_srvsvc_share_info_1);
1954 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1955 srvsvc_dissect_pointer_UNICODE_STRING, NDR_POINTER_UNIQUE,
1956 "Share", hf_srvsvc_share, di->levels);
1958 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1959 hf_srvsvc_share_type, NULL);
1961 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1962 srvsvc_dissect_pointer_UNICODE_STRING, NDR_POINTER_UNIQUE,
1963 "Comment", hf_srvsvc_comment, 0);
1968 srvsvc_dissect_SHARE_INFO_1_array(tvbuff_t *tvb, int offset,
1969 packet_info *pinfo, proto_tree *tree,
1972 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
1973 srvsvc_dissect_SHARE_INFO_1);
1979 * IDL typedef struct {
1980 * IDL long EntriesRead;
1981 * IDL [size_is(EntriesRead)] [unique] SHARE_INFO_1 *shares;
1982 * IDL } SHARE_INFO_1_CONTAINER;
1985 srvsvc_dissect_SHARE_INFO_1_CONTAINER(tvbuff_t *tvb, int offset,
1986 packet_info *pinfo, proto_tree *tree,
1989 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
1990 hf_srvsvc_num_entries, NULL);
1992 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
1993 srvsvc_dissect_SHARE_INFO_1_array, NDR_POINTER_UNIQUE,
1994 "SHARE_INFO_1 array:", -1, 3);
2000 IDL typedef struct {
2001 IDL [unique] [string] wchar_t *share;
2003 IDL [unique] [string] wchar_t *comment;
2004 IDL long permissions;
2006 IDL long current_uses;
2007 IDL [unique] [string] wchar_t *path;
2008 IDL [unique] [string] wchar_t *passwd;
2012 srvsvc_dissect_SHARE_INFO_2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, char *drep)
2014 proto_item *item = NULL;
2015 proto_tree *tree = NULL;
2019 di=pinfo->private_data;
2021 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "Share");
2022 tree = proto_item_add_subtree(item, ett_srvsvc_share_info_2);
2025 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2026 srvsvc_dissect_pointer_UNICODE_STRING, NDR_POINTER_UNIQUE,
2027 "Share", hf_srvsvc_share, di->levels);
2029 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2030 hf_srvsvc_share_type, NULL);
2032 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2033 srvsvc_dissect_pointer_UNICODE_STRING, NDR_POINTER_UNIQUE,
2034 "Comment", hf_srvsvc_comment, 0);
2036 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2037 hf_srvsvc_perm, NULL);
2039 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2040 hf_srvsvc_max_uses, NULL);
2042 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2043 hf_srvsvc_cur_uses, NULL);
2045 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2046 srvsvc_dissect_pointer_UNICODE_STRING,
2047 NDR_POINTER_UNIQUE, "Path",
2050 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2051 srvsvc_dissect_pointer_UNICODE_STRING,
2052 NDR_POINTER_UNIQUE, "Passwd",
2053 hf_srvsvc_share_passwd, 0);
2058 srvsvc_dissect_SHARE_INFO_2_array(tvbuff_t *tvb, int offset,
2059 packet_info *pinfo, proto_tree *tree,
2062 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
2063 srvsvc_dissect_SHARE_INFO_2);
2069 * IDL typedef struct {
2070 * IDL long EntriesRead;
2071 * IDL [size_is(EntriesRead)] [unique] SHARE_INFO_2 *shares;
2072 * IDL } SHARE_INFO_2_CONTAINER;
2075 srvsvc_dissect_SHARE_INFO_2_CONTAINER(tvbuff_t *tvb, int offset,
2076 packet_info *pinfo, proto_tree *tree,
2079 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2080 hf_srvsvc_num_entries, NULL);
2082 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2083 srvsvc_dissect_SHARE_INFO_2_array, NDR_POINTER_UNIQUE,
2084 "SHARE_INFO_2 array:", -1, 0);
2090 IDL typedef struct {
2091 IDL [unique] [string] wchar_t *share;
2093 IDL [unique] [string] wchar_t *comment;
2094 IDL long permissions;
2096 IDL long current_uses;
2097 IDL [unique] [string] wchar_t *path;
2098 IDL [unique] [string] wchar_t *passwd;
2100 IDL SECDESC [unique] *securitysecriptor; 4byte-len followed by bytestring
2101 IDL } SHARE_INFO_502;
2104 srvsvc_dissect_SHARE_INFO_502(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, char *drep)
2106 proto_item *item = NULL;
2107 proto_tree *tree = NULL;
2111 di=pinfo->private_data;
2113 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "Share");
2114 tree = proto_item_add_subtree(item, ett_srvsvc_share_info_502);
2117 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2118 srvsvc_dissect_pointer_UNICODE_STRING, NDR_POINTER_UNIQUE,
2119 "Share", hf_srvsvc_share, di->levels);
2121 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2122 hf_srvsvc_share_type, NULL);
2124 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2125 srvsvc_dissect_pointer_UNICODE_STRING, NDR_POINTER_UNIQUE,
2126 "Comment", hf_srvsvc_comment, 0);
2128 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2129 hf_srvsvc_perm, NULL);
2131 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2132 hf_srvsvc_max_uses, NULL);
2134 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2135 hf_srvsvc_cur_uses, NULL);
2137 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2138 srvsvc_dissect_pointer_UNICODE_STRING,
2139 NDR_POINTER_UNIQUE, "Path",
2142 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2143 srvsvc_dissect_pointer_UNICODE_STRING,
2144 NDR_POINTER_UNIQUE, "Passwd",
2145 hf_srvsvc_share_passwd, 0);
2147 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2148 hf_srvsvc_reserved, NULL);
2150 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2151 lsa_dissect_LSA_SECURITY_DESCRIPTOR_data, NDR_POINTER_UNIQUE,
2152 "LSA SECURITY DESCRIPTOR data:", -1, 0);
2157 srvsvc_dissect_SHARE_INFO_502_array(tvbuff_t *tvb, int offset,
2158 packet_info *pinfo, proto_tree *tree,
2161 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
2162 srvsvc_dissect_SHARE_INFO_502);
2168 * IDL typedef struct {
2169 * IDL long EntriesRead;
2170 * IDL [size_is(EntriesRead)] [unique] SHARE_INFO_502 *shares;
2171 * IDL } SHARE_INFO_502_CONTAINER;
2174 srvsvc_dissect_SHARE_INFO_502_CONTAINER(tvbuff_t *tvb, int offset,
2175 packet_info *pinfo, proto_tree *tree,
2178 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2179 hf_srvsvc_num_entries, NULL);
2181 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2182 srvsvc_dissect_SHARE_INFO_502_array, NDR_POINTER_UNIQUE,
2183 "SHARE_INFO_502 array:", -1, 0);
2189 IDL typedef struct {
2190 IDL [unique] [string] wchar_t *comment;
2191 IDL } SHARE_INFO_1004;
2194 srvsvc_dissect_SHARE_INFO_1004(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, char *drep)
2196 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2197 srvsvc_dissect_pointer_UNICODE_STRING, NDR_POINTER_UNIQUE,
2198 "Comment", hf_srvsvc_comment, 0);
2203 srvsvc_dissect_SHARE_INFO_1004_array(tvbuff_t *tvb, int offset,
2204 packet_info *pinfo, proto_tree *tree,
2207 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
2208 srvsvc_dissect_SHARE_INFO_1004);
2214 * IDL typedef struct {
2215 * IDL long EntriesRead;
2216 * IDL [size_is(EntriesRead)] [unique] SHARE_INFO_1004 *shares;
2217 * IDL } SHARE_INFO_1004_CONTAINER;
2220 srvsvc_dissect_SHARE_INFO_1004_CONTAINER(tvbuff_t *tvb, int offset,
2221 packet_info *pinfo, proto_tree *tree,
2224 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2225 hf_srvsvc_num_entries, NULL);
2227 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2228 srvsvc_dissect_SHARE_INFO_1004_array, NDR_POINTER_UNIQUE,
2229 "SHARE_INFO_1004 array:", -1, 0);
2235 IDL typedef struct {
2237 IDL } SHARE_INFO_1006;
2240 srvsvc_dissect_SHARE_INFO_1006(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, char *drep)
2242 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2243 hf_srvsvc_max_uses, NULL);
2248 srvsvc_dissect_SHARE_INFO_1006_array(tvbuff_t *tvb, int offset,
2249 packet_info *pinfo, proto_tree *tree,
2252 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
2253 srvsvc_dissect_SHARE_INFO_1006);
2259 * IDL typedef struct {
2260 * IDL long EntriesRead;
2261 * IDL [size_is(EntriesRead)] [unique] SHARE_INFO_1006 *shares;
2262 * IDL } SHARE_INFO_1006_CONTAINER;
2265 srvsvc_dissect_SHARE_INFO_1006_CONTAINER(tvbuff_t *tvb, int offset,
2266 packet_info *pinfo, proto_tree *tree,
2269 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2270 hf_srvsvc_num_entries, NULL);
2272 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2273 srvsvc_dissect_SHARE_INFO_1006_array, NDR_POINTER_UNIQUE,
2274 "SHARE_INFO_1006 array:", -1, 0);
2281 * IDL typedef [switch_type(long)] union {
2282 * IDL [case(0)] [unique] SHARE_INFO_0 *share0;
2283 * IDL [case(1)] [unique] SHARE_INFO_1 *share1;
2284 * IDL [case(2)] [unique] SHARE_INFO_2 *share2;
2285 * IDL [case(502)] [unique] SHARE_INFO_502 *share502;
2286 * IDL [case(1004)] [unique] SHARE_INFO_1004 *share1004;
2287 * IDL [case(1006)] [unique] SHARE_INFO_1006 *share1006;
2288 * IDL } SHARE_INFO_UNION;
2291 srvsvc_dissect_SHARE_INFO_UNION(tvbuff_t *tvb, int offset,
2292 packet_info *pinfo, proto_tree *tree,
2299 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_info_level, &level);
2303 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2304 srvsvc_dissect_SHARE_INFO_0,
2305 NDR_POINTER_UNIQUE, "SHARE_INFO_0:",
2309 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2310 srvsvc_dissect_SHARE_INFO_1,
2311 NDR_POINTER_UNIQUE, "SHARE_INFO_1:",
2315 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2316 srvsvc_dissect_SHARE_INFO_2,
2317 NDR_POINTER_UNIQUE, "SHARE_INFO_2:",
2321 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2322 srvsvc_dissect_SHARE_INFO_502,
2323 NDR_POINTER_UNIQUE, "SHARE_INFO_502:",
2327 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2328 srvsvc_dissect_SHARE_INFO_1004,
2329 NDR_POINTER_UNIQUE, "SHARE_INFO_1004:",
2333 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2334 srvsvc_dissect_SHARE_INFO_1006,
2335 NDR_POINTER_UNIQUE, "SHARE_INFO_1006:",
2344 /* XXX dont know the out parameters. only the in parameters.
2346 * IDL long NetrShareAdd(
2347 * IDL [in] [string] [unique] wchar_t *ServerName,
2348 * IDL [in] long Level,
2349 * IDL [in] [ref] SHARE_INFO_UNION *share,
2350 * IDL [in] [unique] ParmError
2354 srvsvc_dissect_netrshareadd_rqst(tvbuff_t *tvb, int offset,
2355 packet_info *pinfo, proto_tree *tree,
2358 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2359 srvsvc_dissect_pointer_UNICODE_STRING,
2360 NDR_POINTER_UNIQUE, "Server",
2361 hf_srvsvc_server, 0);
2363 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2364 hf_srvsvc_info_level, 0);
2366 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2367 srvsvc_dissect_SHARE_INFO_UNION,
2368 NDR_POINTER_REF, "SHARE_INFO_UNION:",
2371 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2372 srvsvc_dissect_pointer_long, NDR_POINTER_UNIQUE,
2373 "Parameter Error:", hf_srvsvc_parm_error, 0);
2379 * IDL typedef [switch_type(long)] union {
2380 * IDL [case(0)] [unique] SHARE_INFO_0_CONTAINER *share0;
2381 * IDL [case(1)] [unique] SHARE_INFO_1_CONTAINER *share1;
2382 * IDL [case(2)] [unique] SHARE_INFO_2_CONTAINER *share2;
2383 * IDL [case(502)] [unique] SHARE_INFO_502_CONTAINER *share502;
2384 * IDL [case(1004)] [unique] SHARE_INFO_1004_CONTAINER *share1004;
2385 * IDL [case(1006)] [unique] SHARE_INFO_1006_CONTAINER *share1006;
2386 * IDL } SHARE_ENUM_UNION;
2389 srvsvc_dissect_SHARE_ENUM_UNION(tvbuff_t *tvb, int offset,
2390 packet_info *pinfo, proto_tree *tree,
2397 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_info_level, &level);
2401 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2402 srvsvc_dissect_SHARE_INFO_0_CONTAINER,
2403 NDR_POINTER_UNIQUE, "SHARE_INFO_0_CONTAINER:",
2407 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2408 srvsvc_dissect_SHARE_INFO_1_CONTAINER,
2409 NDR_POINTER_UNIQUE, "SHARE_INFO_1_CONTAINER:",
2413 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2414 srvsvc_dissect_SHARE_INFO_2_CONTAINER,
2415 NDR_POINTER_UNIQUE, "SHARE_INFO_2_CONTAINER:",
2419 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2420 srvsvc_dissect_SHARE_INFO_502_CONTAINER,
2421 NDR_POINTER_UNIQUE, "SHARE_INFO_502_CONTAINER:",
2425 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2426 srvsvc_dissect_SHARE_INFO_1004_CONTAINER,
2427 NDR_POINTER_UNIQUE, "SHARE_INFO_1004_CONTAINER:",
2431 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2432 srvsvc_dissect_SHARE_INFO_1006_CONTAINER,
2433 NDR_POINTER_UNIQUE, "SHARE_INFO_1006_CONTAINER:",
2442 * IDL typedef struct {
2444 * IDL SHARE_ENUM_UNION shares;
2445 * IDL } SHARE_ENUM_STRUCT;
2448 srvsvc_dissect_SHARE_ENUM_STRUCT(tvbuff_t *tvb, int offset,
2449 packet_info *pinfo, proto_tree *tree,
2452 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2453 hf_srvsvc_info_level, 0);
2455 offset = srvsvc_dissect_SHARE_ENUM_UNION(tvb, offset, pinfo, tree, drep);
2461 * IDL long NetrShareEnum(
2462 * IDL [in] [string] [unique] wchar_t *ServerName,
2463 * IDL [in] [out] [ref] SHARE_ENUM_STRUCT *share,
2464 * IDL [in] long MaxLen,
2465 * IDL [out] long Entries,
2466 * IDL [in] [out] [unique] *ResumeHandle
2470 srvsvc_dissect_netrshareenum_rqst(tvbuff_t *tvb, int offset,
2471 packet_info *pinfo, proto_tree *tree,
2474 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2475 srvsvc_dissect_pointer_UNICODE_STRING,
2476 NDR_POINTER_UNIQUE, "Server",
2477 hf_srvsvc_server, 0);
2479 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2480 srvsvc_dissect_SHARE_ENUM_STRUCT,
2481 NDR_POINTER_REF, "Shares",
2484 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2485 hf_srvsvc_preferred_len, 0);
2487 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2488 srvsvc_dissect_ENUM_HANDLE,
2489 NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
2495 srvsvc_dissect_netrshareenum_reply(tvbuff_t *tvb, int offset,
2496 packet_info *pinfo, proto_tree *tree,
2499 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2500 srvsvc_dissect_SHARE_ENUM_STRUCT,
2501 NDR_POINTER_REF, "Shares",
2504 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2505 hf_srvsvc_num_entries, NULL);
2507 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2508 srvsvc_dissect_ENUM_HANDLE,
2509 NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
2511 offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
2512 hf_srvsvc_rc, NULL);
2518 * IDL long NetrShareGetInfo(
2519 * IDL [in] [string] [unique] wchar_t *ServerName,
2520 * IDL [in] [string] [ref] wchar_t *ShareName,
2521 * IDL [in] long Level,
2522 * IDL [out] [ref] SHARE_INFO_UNION *share
2526 srvsvc_dissect_netrsharegetinfo_rqst(tvbuff_t *tvb, int offset,
2527 packet_info *pinfo, proto_tree *tree,
2530 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2531 srvsvc_dissect_pointer_UNICODE_STRING,
2532 NDR_POINTER_UNIQUE, "Server",
2533 hf_srvsvc_server, 0);
2535 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2536 srvsvc_dissect_pointer_UNICODE_STRING,
2537 NDR_POINTER_REF, "Share",
2538 hf_srvsvc_share, 0);
2540 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2541 hf_srvsvc_info_level, 0);
2547 srvsvc_dissect_netrsharegetinfo_reply(tvbuff_t *tvb, int offset,
2548 packet_info *pinfo, proto_tree *tree,
2551 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2552 srvsvc_dissect_SHARE_INFO_UNION,
2553 NDR_POINTER_REF, "Share",
2556 offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
2557 hf_srvsvc_rc, NULL);
2562 /* XXX dont know the out parameters. only the in parameters.
2564 * IDL long NetrShareSetInfo(
2565 * IDL [in] [string] [unique] wchar_t *ServerName,
2566 * IDL [in] [string] [ref] wchar_t *ShareName,
2567 * IDL [in] long Level,
2568 * IDL [in] [ref] SHARE_INFO_UNION *share
2569 * IDL [in] [unique] long *ParmError,
2573 srvsvc_dissect_netrsharesetinfo_rqst(tvbuff_t *tvb, int offset,
2574 packet_info *pinfo, proto_tree *tree,
2577 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2578 srvsvc_dissect_pointer_UNICODE_STRING,
2579 NDR_POINTER_UNIQUE, "Server",
2580 hf_srvsvc_server, 0);
2582 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2583 srvsvc_dissect_pointer_UNICODE_STRING,
2584 NDR_POINTER_REF, "Share",
2585 hf_srvsvc_share, 0);
2587 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2588 hf_srvsvc_info_level, 0);
2590 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2591 srvsvc_dissect_SHARE_INFO_UNION,
2592 NDR_POINTER_REF, "Share",
2595 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2596 srvsvc_dissect_pointer_long, NDR_POINTER_UNIQUE,
2597 "Parameter Error:", hf_srvsvc_parm_error, 0);
2602 /* XXX dont know the out parameters. only the in parameters.
2604 * IDL long NetrShareDel(
2605 * IDL [in] [string] [unique] wchar_t *ServerName,
2606 * IDL [in] [string] [ref] wchar_t *ShareName,
2607 * IDL [in] long Reserved,
2611 srvsvc_dissect_netrsharedel_rqst(tvbuff_t *tvb, int offset,
2612 packet_info *pinfo, proto_tree *tree,
2615 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2616 srvsvc_dissect_pointer_UNICODE_STRING,
2617 NDR_POINTER_UNIQUE, "Server",
2618 hf_srvsvc_server, 0);
2620 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2621 srvsvc_dissect_pointer_UNICODE_STRING,
2622 NDR_POINTER_REF, "Share",
2623 hf_srvsvc_share, 0);
2625 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2626 hf_srvsvc_reserved, NULL);
2631 /* XXX dont know the out parameters. only the in parameters.
2633 * IDL long NetrShareDelSticky(
2634 * IDL [in] [string] [unique] wchar_t *ServerName,
2635 * IDL [in] [string] [ref] wchar_t *ShareName,
2636 * IDL [in] long Reserved,
2640 srvsvc_dissect_netrsharedelsticky_rqst(tvbuff_t *tvb, int offset,
2641 packet_info *pinfo, proto_tree *tree,
2644 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2645 srvsvc_dissect_pointer_UNICODE_STRING,
2646 NDR_POINTER_UNIQUE, "Server",
2647 hf_srvsvc_server, 0);
2649 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2650 srvsvc_dissect_pointer_UNICODE_STRING,
2651 NDR_POINTER_REF, "Share",
2652 hf_srvsvc_share, 0);
2654 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2655 hf_srvsvc_reserved, NULL);
2660 /* XXX dont know the out parameters. only the in parameters.
2662 * IDL long NetrShareCheck(
2663 * IDL [in] [string] [unique] wchar_t *ServerName,
2664 * IDL [in] [string] [ref] wchar_t *DeviceName,
2668 srvsvc_dissect_netrsharecheck_rqst(tvbuff_t *tvb, int offset,
2669 packet_info *pinfo, proto_tree *tree,
2672 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2673 srvsvc_dissect_pointer_UNICODE_STRING,
2674 NDR_POINTER_UNIQUE, "Server",
2675 hf_srvsvc_server, 0);
2677 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2678 srvsvc_dissect_pointer_UNICODE_STRING,
2679 NDR_POINTER_UNIQUE, "Char Device",
2680 hf_srvsvc_chrdev, 0);
2686 * IDL typedef struct {
2687 * IDL long platform_id;
2688 * IDL [string] [unique] wchar_t *server;
2689 * IDL } SERVER_INFO_100;
2692 srvsvc_dissect_SERVER_INFO_100(tvbuff_t *tvb, int offset,
2693 packet_info *pinfo, proto_tree *tree,
2696 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2697 hf_srvsvc_platform_id, NULL);
2699 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2700 srvsvc_dissect_pointer_UNICODE_STRING,
2701 NDR_POINTER_UNIQUE, "Server",
2702 hf_srvsvc_server, 0);
2708 * IDL typedef struct {
2709 * IDL long platform_id;
2710 * IDL [string] [unique] wchar_t *server;
2711 * IDL long ver_major;
2712 * IDL long ver_minor;
2714 * IDL [string] [unique] wchar_t *comment;
2715 * IDL } SERVER_INFO_101;
2718 srvsvc_dissect_SERVER_INFO_101(tvbuff_t *tvb, int offset,
2719 packet_info *pinfo, proto_tree *tree,
2722 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2723 hf_srvsvc_platform_id, NULL);
2725 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2726 srvsvc_dissect_pointer_UNICODE_STRING,
2727 NDR_POINTER_UNIQUE, "Server",
2728 hf_srvsvc_server, 0);
2730 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2731 hf_srvsvc_ver_major, NULL);
2733 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2734 hf_srvsvc_ver_minor, NULL);
2736 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2737 hf_srvsvc_server_type, NULL);
2739 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2740 srvsvc_dissect_pointer_UNICODE_STRING,
2741 NDR_POINTER_UNIQUE, "Comment",
2742 hf_srvsvc_comment, 0);
2748 * IDL typedef struct {
2749 * IDL long platform_id;
2750 * IDL [string] [unique] wchar_t *server;
2751 * IDL long ver_major;
2752 * IDL long ver_minor;
2754 * IDL [string] [unique] wchar_t *comment;
2758 * IDL long announce;
2759 * IDL long anndelta;
2760 * IDL long licences;
2761 * IDL [string] [unique] wchar_t *userpath;
2762 * IDL } SERVER_INFO_102;
2765 srvsvc_dissect_SERVER_INFO_102(tvbuff_t *tvb, int offset,
2766 packet_info *pinfo, proto_tree *tree,
2769 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2770 hf_srvsvc_platform_id, NULL);
2772 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2773 srvsvc_dissect_pointer_UNICODE_STRING,
2774 NDR_POINTER_UNIQUE, "Server",
2775 hf_srvsvc_server, 0);
2777 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2778 hf_srvsvc_ver_major, NULL);
2780 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2781 hf_srvsvc_ver_minor, NULL);
2783 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2784 hf_srvsvc_server_type, NULL);
2786 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2787 srvsvc_dissect_pointer_UNICODE_STRING,
2788 NDR_POINTER_UNIQUE, "Comment",
2789 hf_srvsvc_comment, 0);
2791 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2792 hf_srvsvc_users, NULL);
2794 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2795 hf_srvsvc_disc, NULL);
2797 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2798 hf_srvsvc_hidden, NULL);
2800 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2801 hf_srvsvc_announce, NULL);
2803 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2804 hf_srvsvc_anndelta, NULL);
2806 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2807 hf_srvsvc_licences, NULL);
2809 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2810 srvsvc_dissect_pointer_UNICODE_STRING,
2811 NDR_POINTER_UNIQUE, "User Path",
2812 hf_srvsvc_user_path, 0);
2818 * IDL typedef struct {
2819 * IDL long ulist_mtime;
2820 * IDL long glist_mtime;
2821 * IDL long alist_mtime;
2822 * IDL [string] [unique] wchar_t *alerts;
2823 * IDL long security;
2824 * IDL long numadmin;
2826 * IDL [string] [unique] wchar_t *guestaccount;
2829 * IDL long chdevjobs;
2830 * IDL long connections;
2832 * IDL long openfiles;
2833 * IDL long sessopens;
2835 * IDL long sessreqs;
2836 * IDL long opensearch;
2837 * IDL long activelocks;
2838 * IDL long sizreqbufs
2839 * IDL long numbigbufs
2840 * IDL long numfiletasks;
2841 * IDL long alertsched;
2842 * IDL long erroralert;
2843 * IDL long logonalert;
2844 * IDL long accessalert;
2845 * IDL long diskalert;
2846 * IDL long netioalert;
2847 * IDL long maxauditsz;
2848 * IDL [string] [unique] wchar_t *srvheuristics;
2849 * IDL } SERVER_INFO_402;
2852 srvsvc_dissect_SERVER_INFO_402(tvbuff_t *tvb, int offset,
2853 packet_info *pinfo, proto_tree *tree,
2856 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2857 hf_srvsvc_ulist_mtime, NULL);
2859 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2860 hf_srvsvc_glist_mtime, NULL);
2862 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2863 hf_srvsvc_alist_mtime, NULL);
2865 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2866 srvsvc_dissect_pointer_UNICODE_STRING,
2867 NDR_POINTER_UNIQUE, "Alerts",
2868 hf_srvsvc_alerts, 0);
2870 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2871 hf_srvsvc_security, NULL);
2873 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2874 hf_srvsvc_numadmin, NULL);
2876 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2877 hf_srvsvc_lanmask, NULL);
2879 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2880 srvsvc_dissect_pointer_UNICODE_STRING,
2881 NDR_POINTER_UNIQUE, "Guest",
2882 hf_srvsvc_guest, 0);
2884 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2885 hf_srvsvc_chdevs, NULL);
2887 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2888 hf_srvsvc_chdevqs, NULL);
2890 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2891 hf_srvsvc_chdevjobs, NULL);
2893 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2894 hf_srvsvc_connections, NULL);
2896 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2897 hf_srvsvc_shares, NULL);
2899 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2900 hf_srvsvc_openfiles, NULL);
2902 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2903 hf_srvsvc_sessopens, NULL);
2905 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2906 hf_srvsvc_sessvcs, NULL);
2908 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2909 hf_srvsvc_sessreqs, NULL);
2911 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2912 hf_srvsvc_opensearch, NULL);
2914 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2915 hf_srvsvc_activelocks, NULL);
2917 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2918 hf_srvsvc_sizreqbufs, NULL);
2920 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2921 hf_srvsvc_numbigbufs, NULL);
2923 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2924 hf_srvsvc_numfiletasks, NULL);
2926 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2927 hf_srvsvc_alertsched, NULL);
2929 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2930 hf_srvsvc_erroralert, NULL);
2932 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2933 hf_srvsvc_logonalert, NULL);
2935 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2936 hf_srvsvc_accessalert, NULL);
2938 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2939 hf_srvsvc_diskalert, NULL);
2941 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2942 hf_srvsvc_netioalert, NULL);
2944 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2945 hf_srvsvc_maxauditsz, NULL);
2947 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
2948 srvsvc_dissect_pointer_UNICODE_STRING,
2949 NDR_POINTER_UNIQUE, "Server Heuristics",
2950 hf_srvsvc_srvheuristics, 0);
2956 * IDL typedef struct {
2957 * IDL long ulist_mtime;
2958 * IDL long glist_mtime;
2959 * IDL long alist_mtime;
2960 * IDL [string] [unique] wchar_t *alerts;
2961 * IDL long security;
2962 * IDL long numadmin;
2964 * IDL [string] [unique] wchar_t *guestaccount;
2967 * IDL long chdevjobs;
2968 * IDL long connections;
2970 * IDL long openfiles;
2971 * IDL long sessopens;
2973 * IDL long sessreqs;
2974 * IDL long opensearch;
2975 * IDL long activelocks;
2976 * IDL long sizreqbufs
2977 * IDL long numbigbufs
2978 * IDL long numfiletasks;
2979 * IDL long alertsched;
2980 * IDL long erroralert;
2981 * IDL long logonalert;
2982 * IDL long accessalert;
2983 * IDL long diskalert;
2984 * IDL long netioalert;
2985 * IDL long maxauditsz;
2986 * IDL [string] [unique] wchar_t *srvheuristics;
2987 * IDL long auditedevents;
2988 * IDL long auditprofile;
2989 * IDL [string] [unique] wchar_t *autopath;
2990 * IDL } SERVER_INFO_403;
2993 srvsvc_dissect_SERVER_INFO_403(tvbuff_t *tvb, int offset,
2994 packet_info *pinfo, proto_tree *tree,
2997 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
2998 hf_srvsvc_ulist_mtime, NULL);
3000 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3001 hf_srvsvc_glist_mtime, NULL);
3003 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3004 hf_srvsvc_alist_mtime, NULL);
3006 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3007 srvsvc_dissect_pointer_UNICODE_STRING,
3008 NDR_POINTER_UNIQUE, "Alerts",
3009 hf_srvsvc_alerts, 0);
3011 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3012 hf_srvsvc_security, NULL);
3014 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3015 hf_srvsvc_numadmin, NULL);
3017 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3018 hf_srvsvc_lanmask, NULL);
3020 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3021 srvsvc_dissect_pointer_UNICODE_STRING,
3022 NDR_POINTER_UNIQUE, "Guest",
3023 hf_srvsvc_guest, 0);
3025 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3026 hf_srvsvc_chdevs, NULL);
3028 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3029 hf_srvsvc_chdevqs, NULL);
3031 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3032 hf_srvsvc_chdevjobs, NULL);
3034 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3035 hf_srvsvc_connections, NULL);
3037 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3038 hf_srvsvc_shares, NULL);
3040 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3041 hf_srvsvc_openfiles, NULL);
3043 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3044 hf_srvsvc_sessopens, NULL);
3046 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3047 hf_srvsvc_sessvcs, NULL);
3049 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3050 hf_srvsvc_sessreqs, NULL);
3052 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3053 hf_srvsvc_opensearch, NULL);
3055 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3056 hf_srvsvc_activelocks, NULL);
3058 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3059 hf_srvsvc_sizreqbufs, NULL);
3061 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3062 hf_srvsvc_numbigbufs, NULL);
3064 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3065 hf_srvsvc_numfiletasks, NULL);
3067 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3068 hf_srvsvc_alertsched, NULL);
3070 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3071 hf_srvsvc_erroralert, NULL);
3073 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3074 hf_srvsvc_logonalert, NULL);
3076 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3077 hf_srvsvc_accessalert, NULL);
3079 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3080 hf_srvsvc_diskalert, NULL);
3082 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3083 hf_srvsvc_netioalert, NULL);
3085 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3086 hf_srvsvc_maxauditsz, NULL);
3088 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3089 srvsvc_dissect_pointer_UNICODE_STRING,
3090 NDR_POINTER_UNIQUE, "Server Heuristics",
3091 hf_srvsvc_srvheuristics, 0);
3093 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3094 hf_srvsvc_auditedevents, NULL);
3096 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3097 hf_srvsvc_auditprofile, NULL);
3099 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3100 srvsvc_dissect_pointer_UNICODE_STRING,
3101 NDR_POINTER_UNIQUE, "Autopath",
3102 hf_srvsvc_autopath, 0);
3108 * IDL typedef struct {
3109 * IDL long sessopens;
3111 * IDL long opensearch;
3112 * IDL long sizreqbufs
3113 * IDL long initworkitems;
3114 * IDL long maxworkitems;
3115 * IDL long rawworkitems;
3116 * IDL long irpstacksize;
3117 * IDL long maxrawbuflen;
3118 * IDL long sessusers;
3119 * IDL long sessconns;
3120 * IDL long maxpagedmemoryusage;
3121 * IDL long maxnonpagedmemoryusage;
3122 * IDL long enablesoftcompat;
3123 * IDL long enableforcedlogoff;
3124 * IDL long timesource
3125 * IDL long acceptdownlevelapis;
3126 * IDL long lmannounce;
3127 * IDL } SERVER_INFO_502;
3130 srvsvc_dissect_SERVER_INFO_502(tvbuff_t *tvb, int offset,
3131 packet_info *pinfo, proto_tree *tree,
3134 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3135 hf_srvsvc_sessopens, NULL);
3137 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3138 hf_srvsvc_sessvcs, NULL);
3140 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3141 hf_srvsvc_opensearch, NULL);
3143 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3144 hf_srvsvc_sizreqbufs, NULL);
3146 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3147 hf_srvsvc_initworkitems, NULL);
3149 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3150 hf_srvsvc_maxworkitems, NULL);
3152 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3153 hf_srvsvc_rawworkitems, NULL);
3155 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3156 hf_srvsvc_irpstacksize, NULL);
3158 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3159 hf_srvsvc_maxrawbuflen, NULL);
3161 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3162 hf_srvsvc_users, NULL);
3164 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3165 hf_srvsvc_connections, NULL);
3167 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3168 hf_srvsvc_maxpagedmemoryusage, NULL);
3170 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3171 hf_srvsvc_maxnonpagedmemoryusage, NULL);
3173 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3174 hf_srvsvc_enablesoftcompat, NULL);
3176 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3177 hf_srvsvc_enableforcedlogoff, NULL);
3179 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3180 hf_srvsvc_timesource, NULL);
3182 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3183 hf_srvsvc_acceptdownlevelapis, NULL);
3185 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3186 hf_srvsvc_lmannounce, NULL);
3192 * IDL typedef struct {
3193 * IDL long sessopens;
3195 * IDL long opensearch;
3196 * IDL long sizreqbufs
3197 * IDL long initworkitems;
3198 * IDL long maxworkitems;
3199 * IDL long rawworkitems;
3200 * IDL long irpstacksize;
3201 * IDL long maxrawbuflen;
3202 * IDL long sessusers;
3203 * IDL long sessconns;
3204 * IDL long maxpagedmemoryusage;
3205 * IDL long maxnonpagedmemoryusage;
3206 * IDL long enablesoftcompat;
3207 * IDL long enableforcedlogoff;
3208 * IDL long timesource
3209 * IDL long acceptdownlevelapis;
3210 * IDL long lmannounce;
3211 * IDL [string] [unique] wchar_t *domain;
3212 * IDL long maxcopyreadlen;
3213 * IDL long maxcopywritelen;
3214 * IDL long minkeepsearch;
3215 * IDL long mankeepsearch;
3216 * IDL long minkeepcomplsearch;
3217 * IDL long mankeepcomplsearch;
3218 * IDL long threadcountadd;
3219 * IDL long numblockthreads;
3220 * IDL long scavtimeout;
3221 * IDL long minrcvqueue;
3222 * IDL long minfreeworkitems;
3223 * IDL long xactmemsize;
3224 * IDL long threadpriority;
3225 * IDL long maxmpxct;
3226 * IDL long oplockbreakwait;
3227 * IDL long oplockbreakresponsewait;
3228 * IDL long enableoplocks;
3229 * IDL long enableoplockforceclose
3230 * IDL long enablefcbopens;
3231 * IDL long enableraw;
3232 * IDL long enablesharednetdrives;
3233 * IDL long minfreeconnections;
3234 * IDL long maxfreeconnections;
3235 * IDL } SERVER_INFO_503;
3238 srvsvc_dissect_SERVER_INFO_503(tvbuff_t *tvb, int offset,
3239 packet_info *pinfo, proto_tree *tree,
3242 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3243 hf_srvsvc_sessopens, NULL);
3245 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3246 hf_srvsvc_sessvcs, NULL);
3248 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3249 hf_srvsvc_opensearch, NULL);
3251 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3252 hf_srvsvc_sizreqbufs, NULL);
3254 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3255 hf_srvsvc_initworkitems, NULL);
3257 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3258 hf_srvsvc_maxworkitems, NULL);
3260 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3261 hf_srvsvc_rawworkitems, NULL);
3263 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3264 hf_srvsvc_irpstacksize, NULL);
3266 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3267 hf_srvsvc_maxrawbuflen, NULL);
3269 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3270 hf_srvsvc_users, NULL);
3272 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3273 hf_srvsvc_connections, NULL);
3275 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3276 hf_srvsvc_maxpagedmemoryusage, NULL);
3278 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3279 hf_srvsvc_maxnonpagedmemoryusage, NULL);
3281 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3282 hf_srvsvc_enablesoftcompat, NULL);
3284 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3285 hf_srvsvc_enableforcedlogoff, NULL);
3287 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3288 hf_srvsvc_timesource, NULL);
3290 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3291 hf_srvsvc_acceptdownlevelapis, NULL);
3293 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3294 hf_srvsvc_lmannounce, NULL);
3296 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3297 srvsvc_dissect_pointer_UNICODE_STRING,
3298 NDR_POINTER_UNIQUE, "Domain",
3299 hf_srvsvc_domain, 0);
3301 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3302 hf_srvsvc_maxcopyreadlen, NULL);
3304 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3305 hf_srvsvc_maxcopywritelen, NULL);
3307 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3308 hf_srvsvc_minkeepsearch, NULL);
3310 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3311 hf_srvsvc_maxkeepsearch, NULL);
3313 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3314 hf_srvsvc_minkeepcomplsearch, NULL);
3316 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3317 hf_srvsvc_maxkeepcomplsearch, NULL);
3319 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3320 hf_srvsvc_threadcountadd, NULL);
3322 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3323 hf_srvsvc_numblockthreads, NULL);
3325 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3326 hf_srvsvc_scavtimeout, NULL);
3328 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3329 hf_srvsvc_minrcvqueue, NULL);
3331 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3332 hf_srvsvc_minfreeworkitems, NULL);
3334 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3335 hf_srvsvc_xactmemsize, NULL);
3337 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3338 hf_srvsvc_threadpriority, NULL);
3340 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3341 hf_srvsvc_maxmpxct, NULL);
3343 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3344 hf_srvsvc_oplockbreakwait, NULL);
3346 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3347 hf_srvsvc_oplockbreakresponsewait, NULL);
3349 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3350 hf_srvsvc_enableoplocks, NULL);
3352 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3353 hf_srvsvc_enableoplockforceclose, NULL);
3355 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3356 hf_srvsvc_enablefcbopens, NULL);
3358 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3359 hf_srvsvc_enableraw, NULL);
3361 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3362 hf_srvsvc_enablesharednetdrives, NULL);
3364 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3365 hf_srvsvc_minfreeconnections, NULL);
3367 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3368 hf_srvsvc_maxfreeconnections, NULL);
3375 * IDL typedef struct {
3376 * IDL long sessopens;
3378 * IDL long opensearch;
3379 * IDL long sizreqbufs
3380 * IDL long initworkitems;
3381 * IDL long maxworkitems;
3382 * IDL long rawworkitems;
3383 * IDL long irpstacksize;
3384 * IDL long maxrawbuflen;
3385 * IDL long sessusers;
3386 * IDL long sessconns;
3387 * IDL long maxpagedmemoryusage;
3388 * IDL long maxnonpagedmemoryusage;
3389 * IDL long enablesoftcompat;
3390 * IDL long enableforcedlogoff;
3391 * IDL long timesource
3392 * IDL long acceptdownlevelapis;
3393 * IDL long lmannounce;
3394 * IDL [string] [unique] wchar_t *domain;
3395 * IDL long maxcopyreadlen;
3396 * IDL long maxcopywritelen;
3397 * IDL long minkeepsearch;
3398 * IDL long mankeepsearch;
3399 * IDL long minkeepcomplsearch;
3400 * IDL long mankeepcomplsearch;
3401 * IDL long threadcountadd;
3402 * IDL long numblockthreads;
3403 * IDL long scavtimeout;
3404 * IDL long minrcvqueue;
3405 * IDL long minfreeworkitems;
3406 * IDL long xactmemsize;
3407 * IDL long threadpriority;
3408 * IDL long maxmpxct;
3409 * IDL long oplockbreakwait;
3410 * IDL long oplockbreakresponsewait;
3411 * IDL long enableoplocks;
3412 * IDL long enableoplockforceclose
3413 * IDL long enablefcbopens;
3414 * IDL long enableraw;
3415 * IDL long enablesharednetdrives;
3416 * IDL long minfreeconnections;
3417 * IDL long maxfreeconnections;
3418 * IDL long initsesstable;
3419 * IDL long initconntable;
3420 * IDL long initfiletable;
3421 * IDL long initsearchtable;
3422 * IDL long alertsched;
3423 * IDL long errortreshold;
3424 * IDL long networkerrortreshold;
3425 * IDL long diskspacetreshold;
3426 * IDL long reserved;
3427 * IDL long maxlinkdelay;
3428 * IDL long minlinkthroughput;
3429 * IDL long linkinfovalidtime;
3430 * IDL long scavqosinfoupdatetime;
3431 * IDL long maxworkitemidletime;
3432 * IDL } SERVER_INFO_599;
3435 srvsvc_dissect_SERVER_INFO_599(tvbuff_t *tvb, int offset,
3436 packet_info *pinfo, proto_tree *tree,
3439 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3440 hf_srvsvc_sessopens, NULL);
3442 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3443 hf_srvsvc_sessvcs, NULL);
3445 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3446 hf_srvsvc_opensearch, NULL);
3448 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3449 hf_srvsvc_sizreqbufs, NULL);
3451 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3452 hf_srvsvc_initworkitems, NULL);
3454 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3455 hf_srvsvc_maxworkitems, NULL);
3457 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3458 hf_srvsvc_rawworkitems, NULL);
3460 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3461 hf_srvsvc_irpstacksize, NULL);
3463 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3464 hf_srvsvc_maxrawbuflen, NULL);
3466 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3467 hf_srvsvc_users, NULL);
3469 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3470 hf_srvsvc_connections, NULL);
3472 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3473 hf_srvsvc_maxpagedmemoryusage, NULL);
3475 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3476 hf_srvsvc_maxnonpagedmemoryusage, NULL);
3478 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3479 hf_srvsvc_enablesoftcompat, NULL);
3481 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3482 hf_srvsvc_enableforcedlogoff, NULL);
3484 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3485 hf_srvsvc_timesource, NULL);
3487 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3488 hf_srvsvc_acceptdownlevelapis, NULL);
3490 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3491 hf_srvsvc_lmannounce, NULL);
3493 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3494 srvsvc_dissect_pointer_UNICODE_STRING,
3495 NDR_POINTER_UNIQUE, "Domain",
3496 hf_srvsvc_domain, 0);
3498 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3499 hf_srvsvc_maxcopyreadlen, NULL);
3501 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3502 hf_srvsvc_maxcopywritelen, NULL);
3504 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3505 hf_srvsvc_minkeepsearch, NULL);
3507 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3508 hf_srvsvc_maxkeepsearch, NULL);
3510 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3511 hf_srvsvc_minkeepcomplsearch, NULL);
3513 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3514 hf_srvsvc_maxkeepcomplsearch, NULL);
3516 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3517 hf_srvsvc_threadcountadd, NULL);
3519 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3520 hf_srvsvc_numblockthreads, NULL);
3522 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3523 hf_srvsvc_scavtimeout, NULL);
3525 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3526 hf_srvsvc_minrcvqueue, NULL);
3528 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3529 hf_srvsvc_minfreeworkitems, NULL);
3531 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3532 hf_srvsvc_xactmemsize, NULL);
3534 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3535 hf_srvsvc_threadpriority, NULL);
3537 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3538 hf_srvsvc_maxmpxct, NULL);
3540 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3541 hf_srvsvc_oplockbreakwait, NULL);
3543 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3544 hf_srvsvc_oplockbreakresponsewait, NULL);
3546 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3547 hf_srvsvc_enableoplocks, NULL);
3549 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3550 hf_srvsvc_enableoplockforceclose, NULL);
3552 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3553 hf_srvsvc_enablefcbopens, NULL);
3555 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3556 hf_srvsvc_enableraw, NULL);
3558 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3559 hf_srvsvc_enablesharednetdrives, NULL);
3561 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3562 hf_srvsvc_minfreeconnections, NULL);
3564 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3565 hf_srvsvc_maxfreeconnections, NULL);
3567 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3568 hf_srvsvc_initsesstable, NULL);
3570 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3571 hf_srvsvc_initconntable, NULL);
3573 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3574 hf_srvsvc_initfiletable, NULL);
3576 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3577 hf_srvsvc_initsearchtable, NULL);
3579 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3580 hf_srvsvc_alertsched, NULL);
3582 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3583 hf_srvsvc_errortreshold, NULL);
3585 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3586 hf_srvsvc_networkerrortreshold, NULL);
3588 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3589 hf_srvsvc_diskspacetreshold, NULL);
3591 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3592 hf_srvsvc_reserved, NULL);
3594 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3595 hf_srvsvc_reserved, NULL);
3597 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3598 hf_srvsvc_maxlinkdelay, NULL);
3600 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3601 hf_srvsvc_minlinkthroughput, NULL);
3603 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3604 hf_srvsvc_linkinfovalidtime, NULL);
3606 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3607 hf_srvsvc_scavqosinfoupdatetime, NULL);
3609 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3610 hf_srvsvc_maxworkitemidletime, NULL);
3616 * IDL typedef struct {
3617 * IDL [string] [unique] wchar_t *comment;
3618 * IDL } SERVER_INFO_1005;
3621 srvsvc_dissect_SERVER_INFO_1005(tvbuff_t *tvb, int offset,
3622 packet_info *pinfo, proto_tree *tree,
3625 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
3626 srvsvc_dissect_pointer_UNICODE_STRING, NDR_POINTER_UNIQUE,
3627 "Comment", hf_srvsvc_comment, 0);
3634 * IDL typedef struct {
3636 * IDL } SERVER_INFO_1010;
3639 srvsvc_dissect_SERVER_INFO_1010(tvbuff_t *tvb, int offset,
3640 packet_info *pinfo, proto_tree *tree,
3643 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3644 hf_srvsvc_disc, NULL);
3650 * IDL typedef struct {
3652 * IDL } SERVER_INFO_1016;
3655 srvsvc_dissect_SERVER_INFO_1016(tvbuff_t *tvb, int offset,
3656 packet_info *pinfo, proto_tree *tree,
3659 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3660 hf_srvsvc_hidden, NULL);
3666 * IDL typedef struct {
3667 * IDL long announce;
3668 * IDL } SERVER_INFO_1017;
3671 srvsvc_dissect_SERVER_INFO_1017(tvbuff_t *tvb, int offset,
3672 packet_info *pinfo, proto_tree *tree,
3675 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3676 hf_srvsvc_announce, NULL);
3682 * IDL typedef struct {
3683 * IDL long anndelta;
3684 * IDL } SERVER_INFO_1018;
3687 srvsvc_dissect_SERVER_INFO_1018(tvbuff_t *tvb, int offset,
3688 packet_info *pinfo, proto_tree *tree,
3691 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3692 hf_srvsvc_anndelta, NULL);
3698 * IDL typedef struct {
3700 * IDL } SERVER_INFO_1107;
3703 srvsvc_dissect_SERVER_INFO_1107(tvbuff_t *tvb, int offset,
3704 packet_info *pinfo, proto_tree *tree,
3707 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3708 hf_srvsvc_users, NULL);
3714 * IDL typedef struct {
3715 * IDL long sessopens;
3716 * IDL } SERVER_INFO_1501;
3719 srvsvc_dissect_SERVER_INFO_1501(tvbuff_t *tvb, int offset,
3720 packet_info *pinfo, proto_tree *tree,
3723 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3724 hf_srvsvc_sessopens, NULL);
3730 * IDL typedef struct {
3732 * IDL } SERVER_INFO_1502;
3735 srvsvc_dissect_SERVER_INFO_1502(tvbuff_t *tvb, int offset,
3736 packet_info *pinfo, proto_tree *tree,
3739 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3740 hf_srvsvc_sessvcs, NULL);
3746 * IDL typedef struct {
3747 * IDL long opensearch;
3748 * IDL } SERVER_INFO_1503;
3751 srvsvc_dissect_SERVER_INFO_1503(tvbuff_t *tvb, int offset,
3752 packet_info *pinfo, proto_tree *tree,
3755 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3756 hf_srvsvc_opensearch, NULL);
3762 * IDL typedef struct {
3763 * IDL long maxworkitems;
3764 * IDL } SERVER_INFO_1506;
3767 srvsvc_dissect_SERVER_INFO_1506(tvbuff_t *tvb, int offset,
3768 packet_info *pinfo, proto_tree *tree,
3771 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3772 hf_srvsvc_maxworkitems, NULL);
3778 * IDL typedef struct {
3779 * IDL long maxrawbuflen;
3780 * IDL } SERVER_INFO_1509;
3783 srvsvc_dissect_SERVER_INFO_1509(tvbuff_t *tvb, int offset,
3784 packet_info *pinfo, proto_tree *tree,
3787 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3788 hf_srvsvc_maxrawbuflen, NULL);
3794 * IDL typedef struct {
3795 * IDL long sessusers;
3796 * IDL } SERVER_INFO_1510;
3799 srvsvc_dissect_SERVER_INFO_1510(tvbuff_t *tvb, int offset,
3800 packet_info *pinfo, proto_tree *tree,
3803 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3804 hf_srvsvc_users, NULL);
3810 * IDL typedef struct {
3811 * IDL long sessconns;
3812 * IDL } SERVER_INFO_1511;
3815 srvsvc_dissect_SERVER_INFO_1511(tvbuff_t *tvb, int offset,
3816 packet_info *pinfo, proto_tree *tree,
3819 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3820 hf_srvsvc_connections, NULL);
3826 * IDL typedef struct {
3827 * IDL long maxnonpagedmemoryusage;
3828 * IDL } SERVER_INFO_1512;
3831 srvsvc_dissect_SERVER_INFO_1512(tvbuff_t *tvb, int offset,
3832 packet_info *pinfo, proto_tree *tree,
3835 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3836 hf_srvsvc_maxnonpagedmemoryusage, NULL);
3842 * IDL typedef struct {
3843 * IDL long maxpagedmemoryusage;
3844 * IDL } SERVER_INFO_1513;
3847 srvsvc_dissect_SERVER_INFO_1513(tvbuff_t *tvb, int offset,
3848 packet_info *pinfo, proto_tree *tree,
3851 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3852 hf_srvsvc_maxpagedmemoryusage, NULL);
3858 * IDL typedef struct {
3859 * IDL long enablesoftcompat;
3860 * IDL } SERVER_INFO_1514;
3863 srvsvc_dissect_SERVER_INFO_1514(tvbuff_t *tvb, int offset,
3864 packet_info *pinfo, proto_tree *tree,
3867 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3868 hf_srvsvc_enablesoftcompat, NULL);
3874 * IDL typedef struct {
3875 * IDL long enableforcedlogoff;
3876 * IDL } SERVER_INFO_1515;
3879 srvsvc_dissect_SERVER_INFO_1515(tvbuff_t *tvb, int offset,
3880 packet_info *pinfo, proto_tree *tree,
3883 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3884 hf_srvsvc_enableforcedlogoff, NULL);
3890 * IDL typedef struct {
3891 * IDL long timesource;
3892 * IDL } SERVER_INFO_1516;
3895 srvsvc_dissect_SERVER_INFO_1516(tvbuff_t *tvb, int offset,
3896 packet_info *pinfo, proto_tree *tree,
3899 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3900 hf_srvsvc_timesource, NULL);
3906 * IDL typedef struct {
3907 * IDL long lmannounce;
3908 * IDL } SERVER_INFO_1518;
3911 srvsvc_dissect_SERVER_INFO_1518(tvbuff_t *tvb, int offset,
3912 packet_info *pinfo, proto_tree *tree,
3915 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3916 hf_srvsvc_lmannounce, NULL);
3922 * IDL typedef struct {
3923 * IDL long maxcopyreadlen;
3924 * IDL } SERVER_INFO_1520;
3927 srvsvc_dissect_SERVER_INFO_1520(tvbuff_t *tvb, int offset,
3928 packet_info *pinfo, proto_tree *tree,
3931 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3932 hf_srvsvc_maxcopyreadlen, NULL);
3938 * IDL typedef struct {
3939 * IDL long maxcopywritelen;
3940 * IDL } SERVER_INFO_1521;
3943 srvsvc_dissect_SERVER_INFO_1521(tvbuff_t *tvb, int offset,
3944 packet_info *pinfo, proto_tree *tree,
3947 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3948 hf_srvsvc_maxcopywritelen, NULL);
3954 * IDL typedef struct {
3955 * IDL long minkeepsearch;
3956 * IDL } SERVER_INFO_1522;
3959 srvsvc_dissect_SERVER_INFO_1522(tvbuff_t *tvb, int offset,
3960 packet_info *pinfo, proto_tree *tree,
3963 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3964 hf_srvsvc_minkeepsearch, NULL);
3970 * IDL typedef struct {
3971 * IDL long maxkeepsearch;
3972 * IDL } SERVER_INFO_1523;
3975 srvsvc_dissect_SERVER_INFO_1523(tvbuff_t *tvb, int offset,
3976 packet_info *pinfo, proto_tree *tree,
3979 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3980 hf_srvsvc_maxkeepsearch, NULL);
3986 * IDL typedef struct {
3987 * IDL long minkeepcomplsearch;
3988 * IDL } SERVER_INFO_1524;
3991 srvsvc_dissect_SERVER_INFO_1524(tvbuff_t *tvb, int offset,
3992 packet_info *pinfo, proto_tree *tree,
3995 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
3996 hf_srvsvc_minkeepcomplsearch, NULL);
4002 * IDL typedef struct {
4003 * IDL long maxkeepcomplsearch;
4004 * IDL } SERVER_INFO_1525;
4007 srvsvc_dissect_SERVER_INFO_1525(tvbuff_t *tvb, int offset,
4008 packet_info *pinfo, proto_tree *tree,
4011 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4012 hf_srvsvc_maxkeepcomplsearch, NULL);
4018 * IDL typedef struct {
4019 * IDL long scavtimeout;
4020 * IDL } SERVER_INFO_1528;
4023 srvsvc_dissect_SERVER_INFO_1528(tvbuff_t *tvb, int offset,
4024 packet_info *pinfo, proto_tree *tree,
4027 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4028 hf_srvsvc_scavtimeout, NULL);
4034 * IDL typedef struct {
4035 * IDL long minrcvqueue;
4036 * IDL } SERVER_INFO_1529;
4039 srvsvc_dissect_SERVER_INFO_1529(tvbuff_t *tvb, int offset,
4040 packet_info *pinfo, proto_tree *tree,
4043 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4044 hf_srvsvc_minrcvqueue, NULL);
4050 * IDL typedef struct {
4051 * IDL long minfreeworkitems;
4052 * IDL } SERVER_INFO_1530;
4055 srvsvc_dissect_SERVER_INFO_1530(tvbuff_t *tvb, int offset,
4056 packet_info *pinfo, proto_tree *tree,
4059 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4060 hf_srvsvc_minfreeworkitems, NULL);
4066 * IDL typedef struct {
4067 * IDL long maxmpxct;
4068 * IDL } SERVER_INFO_1533;
4071 srvsvc_dissect_SERVER_INFO_1533(tvbuff_t *tvb, int offset,
4072 packet_info *pinfo, proto_tree *tree,
4075 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4076 hf_srvsvc_maxmpxct, NULL);
4082 * IDL typedef struct {
4083 * IDL long oplockbreakwait;
4084 * IDL } SERVER_INFO_1534;
4087 srvsvc_dissect_SERVER_INFO_1534(tvbuff_t *tvb, int offset,
4088 packet_info *pinfo, proto_tree *tree,
4091 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4092 hf_srvsvc_oplockbreakwait, NULL);
4098 * IDL typedef struct {
4099 * IDL long oplockbreakresponsewait;
4100 * IDL } SERVER_INFO_1535;
4103 srvsvc_dissect_SERVER_INFO_1535(tvbuff_t *tvb, int offset,
4104 packet_info *pinfo, proto_tree *tree,
4107 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4108 hf_srvsvc_oplockbreakresponsewait, NULL);
4114 * IDL typedef struct {
4115 * IDL long enableoplocks;
4116 * IDL } SERVER_INFO_1536;
4119 srvsvc_dissect_SERVER_INFO_1536(tvbuff_t *tvb, int offset,
4120 packet_info *pinfo, proto_tree *tree,
4123 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4124 hf_srvsvc_enableoplocks, NULL);
4130 * IDL typedef struct {
4131 * IDL long enableoplockforceclose;
4132 * IDL } SERVER_INFO_1537;
4135 srvsvc_dissect_SERVER_INFO_1537(tvbuff_t *tvb, int offset,
4136 packet_info *pinfo, proto_tree *tree,
4139 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4140 hf_srvsvc_enableoplockforceclose, NULL);
4146 * IDL typedef struct {
4147 * IDL long enablefcbopens;
4148 * IDL } SERVER_INFO_1538;
4151 srvsvc_dissect_SERVER_INFO_1538(tvbuff_t *tvb, int offset,
4152 packet_info *pinfo, proto_tree *tree,
4155 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4156 hf_srvsvc_enablefcbopens, NULL);
4162 * IDL typedef struct {
4163 * IDL long enableraw;
4164 * IDL } SERVER_INFO_1539;
4167 srvsvc_dissect_SERVER_INFO_1539(tvbuff_t *tvb, int offset,
4168 packet_info *pinfo, proto_tree *tree,
4171 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4172 hf_srvsvc_enableraw, NULL);
4178 * IDL typedef struct {
4179 * IDL long enablesharednetdrives;
4180 * IDL } SERVER_INFO_1540;
4183 srvsvc_dissect_SERVER_INFO_1540(tvbuff_t *tvb, int offset,
4184 packet_info *pinfo, proto_tree *tree,
4187 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4188 hf_srvsvc_enablesharednetdrives, NULL);
4194 * IDL typedef struct {
4195 * IDL long minfreeconnections;
4196 * IDL } SERVER_INFO_1541;
4199 srvsvc_dissect_SERVER_INFO_1541(tvbuff_t *tvb, int offset,
4200 packet_info *pinfo, proto_tree *tree,
4203 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4204 hf_srvsvc_minfreeconnections, NULL);
4210 * IDL typedef struct {
4211 * IDL long maxfreeconnections;
4212 * IDL } SERVER_INFO_1542;
4215 srvsvc_dissect_SERVER_INFO_1542(tvbuff_t *tvb, int offset,
4216 packet_info *pinfo, proto_tree *tree,
4219 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4220 hf_srvsvc_maxfreeconnections, NULL);
4226 * IDL typedef struct {
4227 * IDL long initsesstable;
4228 * IDL } SERVER_INFO_1543;
4231 srvsvc_dissect_SERVER_INFO_1543(tvbuff_t *tvb, int offset,
4232 packet_info *pinfo, proto_tree *tree,
4235 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4236 hf_srvsvc_initsesstable, NULL);
4242 * IDL typedef struct {
4243 * IDL long initconntable;
4244 * IDL } SERVER_INFO_1544;
4247 srvsvc_dissect_SERVER_INFO_1544(tvbuff_t *tvb, int offset,
4248 packet_info *pinfo, proto_tree *tree,
4251 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4252 hf_srvsvc_initconntable, NULL);
4258 * IDL typedef struct {
4259 * IDL long initfiletable;
4260 * IDL } SERVER_INFO_1545;
4263 srvsvc_dissect_SERVER_INFO_1545(tvbuff_t *tvb, int offset,
4264 packet_info *pinfo, proto_tree *tree,
4267 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4268 hf_srvsvc_initfiletable, NULL);
4274 * IDL typedef struct {
4275 * IDL long initsearchtable;
4276 * IDL } SERVER_INFO_1546;
4279 srvsvc_dissect_SERVER_INFO_1546(tvbuff_t *tvb, int offset,
4280 packet_info *pinfo, proto_tree *tree,
4283 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4284 hf_srvsvc_initsearchtable, NULL);
4290 * IDL typedef struct {
4291 * IDL long alertsched;
4292 * IDL } SERVER_INFO_1547;
4295 srvsvc_dissect_SERVER_INFO_1547(tvbuff_t *tvb, int offset,
4296 packet_info *pinfo, proto_tree *tree,
4299 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4300 hf_srvsvc_alertsched, NULL);
4306 * IDL typedef struct {
4307 * IDL long errortreshold;
4308 * IDL } SERVER_INFO_1548;
4311 srvsvc_dissect_SERVER_INFO_1548(tvbuff_t *tvb, int offset,
4312 packet_info *pinfo, proto_tree *tree,
4315 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4316 hf_srvsvc_errortreshold, NULL);
4322 * IDL typedef struct {
4323 * IDL long networkerrortreshold;
4324 * IDL } SERVER_INFO_1549;
4327 srvsvc_dissect_SERVER_INFO_1549(tvbuff_t *tvb, int offset,
4328 packet_info *pinfo, proto_tree *tree,
4331 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4332 hf_srvsvc_networkerrortreshold, NULL);
4338 * IDL typedef struct {
4339 * IDL long diskspacetreshold;
4340 * IDL } SERVER_INFO_1550;
4343 srvsvc_dissect_SERVER_INFO_1550(tvbuff_t *tvb, int offset,
4344 packet_info *pinfo, proto_tree *tree,
4347 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4348 hf_srvsvc_diskspacetreshold, NULL);
4354 * IDL typedef struct {
4355 * IDL long maxlinkdelay;
4356 * IDL } SERVER_INFO_1552;
4359 srvsvc_dissect_SERVER_INFO_1552(tvbuff_t *tvb, int offset,
4360 packet_info *pinfo, proto_tree *tree,
4363 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4364 hf_srvsvc_maxlinkdelay, NULL);
4370 * IDL typedef struct {
4371 * IDL long minlinkthroughput;
4372 * IDL } SERVER_INFO_1553;
4375 srvsvc_dissect_SERVER_INFO_1553(tvbuff_t *tvb, int offset,
4376 packet_info *pinfo, proto_tree *tree,
4379 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4380 hf_srvsvc_minlinkthroughput, NULL);
4386 * IDL typedef struct {
4387 * IDL long linkinfovalidtime;
4388 * IDL } SERVER_INFO_1554;
4391 srvsvc_dissect_SERVER_INFO_1554(tvbuff_t *tvb, int offset,
4392 packet_info *pinfo, proto_tree *tree,
4395 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4396 hf_srvsvc_linkinfovalidtime, NULL);
4402 * IDL typedef struct {
4403 * IDL long scavqosinfoupdatetime;
4404 * IDL } SERVER_INFO_1555;
4407 srvsvc_dissect_SERVER_INFO_1555(tvbuff_t *tvb, int offset,
4408 packet_info *pinfo, proto_tree *tree,
4411 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4412 hf_srvsvc_scavqosinfoupdatetime, NULL);
4418 * IDL typedef struct {
4419 * IDL long maxworkitemidletime;
4420 * IDL } SERVER_INFO_1556;
4423 srvsvc_dissect_SERVER_INFO_1556(tvbuff_t *tvb, int offset,
4424 packet_info *pinfo, proto_tree *tree,
4427 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4428 hf_srvsvc_maxworkitemidletime, NULL);
4434 * IDL typedef [switch_type(long)] union {
4435 * IDL [case(100)] [unique] SERVER_INFO_100 *srv100;
4436 * IDL [case(101)] [unique] SERVER_INFO_101 *srv101;
4437 * IDL [case(102)] [unique] SERVER_INFO_102 *srv102;
4438 * IDL [case(402)] [unique] SERVER_INFO_402 *srv402;
4439 * IDL [case(403)] [unique] SERVER_INFO_403 *srv403;
4440 * IDL [case(502)] [unique] SERVER_INFO_502 *srv502;
4441 * IDL [case(503)] [unique] SERVER_INFO_503 *srv503;
4442 * IDL [case(599)] [unique] SERVER_INFO_599 *srv599;
4443 * IDL [case(1005)] [unique] SERVER_INFO_1005 *srv1005;
4444 * IDL [case(1010)] [unique] SERVER_INFO_1010 *srv1010;
4445 * IDL [case(1016)] [unique] SERVER_INFO_1016 *srv1016;
4446 * IDL [case(1017)] [unique] SERVER_INFO_1017 *srv1017;
4447 * IDL [case(1018)] [unique] SERVER_INFO_1018 *srv1018;
4448 * IDL [case(1107)] [unique] SERVER_INFO_1107 *srv1107;
4449 * IDL [case(1501)] [unique] SERVER_INFO_1501 *srv1501;
4450 * IDL [case(1502)] [unique] SERVER_INFO_1502 *srv1502;
4451 * IDL [case(1503)] [unique] SERVER_INFO_1503 *srv1503;
4452 * IDL [case(1506)] [unique] SERVER_INFO_1506 *srv1506;
4453 * IDL [case(1509)] [unique] SERVER_INFO_1509 *srv1509;
4454 * IDL [case(1510)] [unique] SERVER_INFO_1510 *srv1510;
4455 * IDL [case(1511)] [unique] SERVER_INFO_1511 *srv1511;
4456 * IDL [case(1512)] [unique] SERVER_INFO_1512 *srv1512;
4457 * IDL [case(1513)] [unique] SERVER_INFO_1513 *srv1513;
4458 * IDL [case(1514)] [unique] SERVER_INFO_1514 *srv1514;
4459 * IDL [case(1515)] [unique] SERVER_INFO_1515 *srv1515;
4460 * IDL [case(1516)] [unique] SERVER_INFO_1516 *srv1516;
4461 * IDL [case(1518)] [unique] SERVER_INFO_1518 *srv1518;
4462 * IDL [case(1520)] [unique] SERVER_INFO_1520 *srv1520;
4463 * IDL [case(1521)] [unique] SERVER_INFO_1521 *srv1521;
4464 * IDL [case(1522)] [unique] SERVER_INFO_1522 *srv1522;
4465 * IDL [case(1523)] [unique] SERVER_INFO_1523 *srv1523;
4466 * IDL [case(1524)] [unique] SERVER_INFO_1524 *srv1524;
4467 * IDL [case(1525)] [unique] SERVER_INFO_1525 *srv1525;
4468 * IDL [case(1528)] [unique] SERVER_INFO_1528 *srv1528;
4469 * IDL [case(1529)] [unique] SERVER_INFO_1529 *srv1529;
4470 * IDL [case(1530)] [unique] SERVER_INFO_1530 *srv1530;
4471 * IDL [case(1533)] [unique] SERVER_INFO_1533 *srv1533;
4472 * IDL [case(1534)] [unique] SERVER_INFO_1534 *srv1534;
4473 * IDL [case(1535)] [unique] SERVER_INFO_1535 *srv1535;
4474 * IDL [case(1536)] [unique] SERVER_INFO_1536 *srv1536;
4475 * IDL [case(1537)] [unique] SERVER_INFO_1537 *srv1537;
4476 * IDL [case(1538)] [unique] SERVER_INFO_1538 *srv1538;
4477 * IDL [case(1539)] [unique] SERVER_INFO_1539 *srv1539;
4478 * IDL [case(1540)] [unique] SERVER_INFO_1540 *srv1540;
4479 * IDL [case(1541)] [unique] SERVER_INFO_1541 *srv1541;
4480 * IDL [case(1542)] [unique] SERVER_INFO_1542 *srv1542;
4481 * IDL [case(1543)] [unique] SERVER_INFO_1543 *srv1543;
4482 * IDL [case(1544)] [unique] SERVER_INFO_1544 *srv1544;
4483 * IDL [case(1545)] [unique] SERVER_INFO_1545 *srv1545;
4484 * IDL [case(1546)] [unique] SERVER_INFO_1546 *srv1546;
4485 * IDL [case(1547)] [unique] SERVER_INFO_1547 *srv1547;
4486 * IDL [case(1548)] [unique] SERVER_INFO_1548 *srv1548;
4487 * IDL [case(1549)] [unique] SERVER_INFO_1549 *srv1549;
4488 * IDL [case(1550)] [unique] SERVER_INFO_1550 *srv1550;
4489 * IDL [case(1552)] [unique] SERVER_INFO_1552 *srv1552;
4490 * IDL [case(1553)] [unique] SERVER_INFO_1553 *srv1553;
4491 * IDL [case(1554)] [unique] SERVER_INFO_1554 *srv1554;
4492 * IDL [case(1555)] [unique] SERVER_INFO_1555 *srv1555;
4493 * IDL [case(1556)] [unique] SERVER_INFO_1556 *srv1556;
4494 * IDL } SERVER_INFO_UNION;
4497 srvsvc_dissect_SERVER_INFO_UNION(tvbuff_t *tvb, int offset,
4498 packet_info *pinfo, proto_tree *tree,
4505 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_info_level, &level);
4509 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4510 srvsvc_dissect_SERVER_INFO_100,
4511 NDR_POINTER_UNIQUE, "SERVER_INFO_100:",
4516 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4517 srvsvc_dissect_SERVER_INFO_101,
4518 NDR_POINTER_UNIQUE, "SERVER_INFO_101:",
4523 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4524 srvsvc_dissect_SERVER_INFO_102,
4525 NDR_POINTER_UNIQUE, "SERVER_INFO_102:",
4530 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4531 srvsvc_dissect_SERVER_INFO_402,
4532 NDR_POINTER_UNIQUE, "SERVER_INFO_402:",
4537 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4538 srvsvc_dissect_SERVER_INFO_403,
4539 NDR_POINTER_UNIQUE, "SERVER_INFO_403:",
4544 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4545 srvsvc_dissect_SERVER_INFO_502,
4546 NDR_POINTER_UNIQUE, "SERVER_INFO_502:",
4551 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4552 srvsvc_dissect_SERVER_INFO_503,
4553 NDR_POINTER_UNIQUE, "SERVER_INFO_503:",
4558 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4559 srvsvc_dissect_SERVER_INFO_599,
4560 NDR_POINTER_UNIQUE, "SERVER_INFO_599:",
4565 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4566 srvsvc_dissect_SERVER_INFO_1005,
4567 NDR_POINTER_UNIQUE, "SERVER_INFO_1005:",
4572 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4573 srvsvc_dissect_SERVER_INFO_1010,
4574 NDR_POINTER_UNIQUE, "SERVER_INFO_1010:",
4579 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4580 srvsvc_dissect_SERVER_INFO_1016,
4581 NDR_POINTER_UNIQUE, "SERVER_INFO_1016:",
4586 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4587 srvsvc_dissect_SERVER_INFO_1017,
4588 NDR_POINTER_UNIQUE, "SERVER_INFO_1017:",
4593 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4594 srvsvc_dissect_SERVER_INFO_1018,
4595 NDR_POINTER_UNIQUE, "SERVER_INFO_1018:",
4600 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4601 srvsvc_dissect_SERVER_INFO_1107,
4602 NDR_POINTER_UNIQUE, "SERVER_INFO_1107:",
4607 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4608 srvsvc_dissect_SERVER_INFO_1501,
4609 NDR_POINTER_UNIQUE, "SERVER_INFO_1501:",
4614 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4615 srvsvc_dissect_SERVER_INFO_1502,
4616 NDR_POINTER_UNIQUE, "SERVER_INFO_1502:",
4621 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4622 srvsvc_dissect_SERVER_INFO_1503,
4623 NDR_POINTER_UNIQUE, "SERVER_INFO_1503:",
4628 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4629 srvsvc_dissect_SERVER_INFO_1506,
4630 NDR_POINTER_UNIQUE, "SERVER_INFO_1506:",
4635 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4636 srvsvc_dissect_SERVER_INFO_1509,
4637 NDR_POINTER_UNIQUE, "SERVER_INFO_1509:",
4642 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4643 srvsvc_dissect_SERVER_INFO_1510,
4644 NDR_POINTER_UNIQUE, "SERVER_INFO_1510:",
4649 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4650 srvsvc_dissect_SERVER_INFO_1511,
4651 NDR_POINTER_UNIQUE, "SERVER_INFO_1511:",
4656 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4657 srvsvc_dissect_SERVER_INFO_1512,
4658 NDR_POINTER_UNIQUE, "SERVER_INFO_1512:",
4663 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4664 srvsvc_dissect_SERVER_INFO_1513,
4665 NDR_POINTER_UNIQUE, "SERVER_INFO_1513:",
4670 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4671 srvsvc_dissect_SERVER_INFO_1514,
4672 NDR_POINTER_UNIQUE, "SERVER_INFO_1514:",
4677 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4678 srvsvc_dissect_SERVER_INFO_1515,
4679 NDR_POINTER_UNIQUE, "SERVER_INFO_1515:",
4684 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4685 srvsvc_dissect_SERVER_INFO_1516,
4686 NDR_POINTER_UNIQUE, "SERVER_INFO_1516:",
4691 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4692 srvsvc_dissect_SERVER_INFO_1518,
4693 NDR_POINTER_UNIQUE, "SERVER_INFO_1518:",
4698 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4699 srvsvc_dissect_SERVER_INFO_1520,
4700 NDR_POINTER_UNIQUE, "SERVER_INFO_1520:",
4705 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4706 srvsvc_dissect_SERVER_INFO_1521,
4707 NDR_POINTER_UNIQUE, "SERVER_INFO_1521:",
4712 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4713 srvsvc_dissect_SERVER_INFO_1522,
4714 NDR_POINTER_UNIQUE, "SERVER_INFO_1522:",
4719 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4720 srvsvc_dissect_SERVER_INFO_1523,
4721 NDR_POINTER_UNIQUE, "SERVER_INFO_1523:",
4726 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4727 srvsvc_dissect_SERVER_INFO_1524,
4728 NDR_POINTER_UNIQUE, "SERVER_INFO_1524:",
4733 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4734 srvsvc_dissect_SERVER_INFO_1525,
4735 NDR_POINTER_UNIQUE, "SERVER_INFO_1525:",
4740 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4741 srvsvc_dissect_SERVER_INFO_1528,
4742 NDR_POINTER_UNIQUE, "SERVER_INFO_1528:",
4747 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4748 srvsvc_dissect_SERVER_INFO_1529,
4749 NDR_POINTER_UNIQUE, "SERVER_INFO_1529:",
4754 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4755 srvsvc_dissect_SERVER_INFO_1530,
4756 NDR_POINTER_UNIQUE, "SERVER_INFO_1530:",
4761 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4762 srvsvc_dissect_SERVER_INFO_1533,
4763 NDR_POINTER_UNIQUE, "SERVER_INFO_1533:",
4768 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4769 srvsvc_dissect_SERVER_INFO_1534,
4770 NDR_POINTER_UNIQUE, "SERVER_INFO_1534:",
4775 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4776 srvsvc_dissect_SERVER_INFO_1535,
4777 NDR_POINTER_UNIQUE, "SERVER_INFO_1535:",
4782 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4783 srvsvc_dissect_SERVER_INFO_1536,
4784 NDR_POINTER_UNIQUE, "SERVER_INFO_1536:",
4789 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4790 srvsvc_dissect_SERVER_INFO_1537,
4791 NDR_POINTER_UNIQUE, "SERVER_INFO_1537:",
4796 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4797 srvsvc_dissect_SERVER_INFO_1538,
4798 NDR_POINTER_UNIQUE, "SERVER_INFO_1538:",
4803 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4804 srvsvc_dissect_SERVER_INFO_1539,
4805 NDR_POINTER_UNIQUE, "SERVER_INFO_1539:",
4810 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4811 srvsvc_dissect_SERVER_INFO_1540,
4812 NDR_POINTER_UNIQUE, "SERVER_INFO_1540:",
4817 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4818 srvsvc_dissect_SERVER_INFO_1541,
4819 NDR_POINTER_UNIQUE, "SERVER_INFO_1541:",
4824 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4825 srvsvc_dissect_SERVER_INFO_1542,
4826 NDR_POINTER_UNIQUE, "SERVER_INFO_1542:",
4831 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4832 srvsvc_dissect_SERVER_INFO_1543,
4833 NDR_POINTER_UNIQUE, "SERVER_INFO_1543:",
4838 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4839 srvsvc_dissect_SERVER_INFO_1544,
4840 NDR_POINTER_UNIQUE, "SERVER_INFO_1544:",
4845 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4846 srvsvc_dissect_SERVER_INFO_1545,
4847 NDR_POINTER_UNIQUE, "SERVER_INFO_1545:",
4852 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4853 srvsvc_dissect_SERVER_INFO_1546,
4854 NDR_POINTER_UNIQUE, "SERVER_INFO_1546:",
4859 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4860 srvsvc_dissect_SERVER_INFO_1547,
4861 NDR_POINTER_UNIQUE, "SERVER_INFO_1547:",
4866 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4867 srvsvc_dissect_SERVER_INFO_1548,
4868 NDR_POINTER_UNIQUE, "SERVER_INFO_1548:",
4873 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4874 srvsvc_dissect_SERVER_INFO_1549,
4875 NDR_POINTER_UNIQUE, "SERVER_INFO_1549:",
4880 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4881 srvsvc_dissect_SERVER_INFO_1550,
4882 NDR_POINTER_UNIQUE, "SERVER_INFO_1550:",
4887 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4888 srvsvc_dissect_SERVER_INFO_1552,
4889 NDR_POINTER_UNIQUE, "SERVER_INFO_1552:",
4894 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4895 srvsvc_dissect_SERVER_INFO_1553,
4896 NDR_POINTER_UNIQUE, "SERVER_INFO_1553:",
4901 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4902 srvsvc_dissect_SERVER_INFO_1554,
4903 NDR_POINTER_UNIQUE, "SERVER_INFO_1554:",
4908 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4909 srvsvc_dissect_SERVER_INFO_1555,
4910 NDR_POINTER_UNIQUE, "SERVER_INFO_1555:",
4915 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4916 srvsvc_dissect_SERVER_INFO_1556,
4917 NDR_POINTER_UNIQUE, "SERVER_INFO_1556:",
4927 * IDL long NetrServerGetInfo(
4928 * IDL [in] [string] [unique] wchar_t *ServerName,
4929 * IDL [in] long Level,
4930 * IDL [out] [ref] SERVER_INFO_UNION *srv;
4934 srvsvc_dissect_netrservergetinfo_rqst(tvbuff_t *tvb, int offset,
4935 packet_info *pinfo, proto_tree *tree,
4938 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4939 srvsvc_dissect_pointer_UNICODE_STRING,
4940 NDR_POINTER_UNIQUE, "Server",
4941 hf_srvsvc_server, 0);
4943 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4944 hf_srvsvc_info_level, 0);
4949 srvsvc_dissect_netrservergetinfo_reply(tvbuff_t *tvb, int offset,
4950 packet_info *pinfo, proto_tree *tree,
4953 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4954 srvsvc_dissect_SERVER_INFO_UNION,
4955 NDR_POINTER_REF, "Server Info",
4958 offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
4959 hf_srvsvc_rc, NULL);
4964 /* XXX dont know the out parameters. only the in parameters.
4966 * IDL long NetrServerSetInfo(
4967 * IDL [in] [string] [unique] wchar_t *ServerName,
4968 * IDL [in] long Level,
4969 * IDL [in] [ref] SERVER_INFO_UNION *srv;
4970 * IDL [in] [unique] long *ParamError;
4974 srvsvc_dissect_netrserversetinfo_rqst(tvbuff_t *tvb, int offset,
4975 packet_info *pinfo, proto_tree *tree,
4978 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4979 srvsvc_dissect_pointer_UNICODE_STRING,
4980 NDR_POINTER_UNIQUE, "Server",
4981 hf_srvsvc_server, 0);
4983 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
4984 hf_srvsvc_info_level, 0);
4986 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4987 srvsvc_dissect_SERVER_INFO_UNION,
4988 NDR_POINTER_REF, "Server Info",
4991 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
4992 srvsvc_dissect_pointer_long, NDR_POINTER_UNIQUE,
4993 "Parameter Error:", hf_srvsvc_parm_error, 0);
4999 * IDL typedef struct {
5000 * IDL [size_is()] [unique] wchar_t *disk;
5001 * IDL } DISK_INFO_0;
5004 srvsvc_dissect_DISK_INFO_0(tvbuff_t *tvb, int offset,
5005 packet_info *pinfo, proto_tree *tree,
5014 di=pinfo->private_data;
5015 if(di->conformant_run){
5016 /* this call is to make ethereal eat the array header for the conformant run */
5017 offset =dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, NULL);
5021 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5022 hf_srvsvc_disk_name_len, &len);
5025 offset = prs_uint16s(tvb, offset, pinfo, tree, len, &data16_offset,
5027 text = fake_unicode(tvb, data16_offset, len);
5029 proto_tree_add_string(tree, hf_srvsvc_disk_name, tvb, old_offset,
5030 offset-old_offset, text);
5036 srvsvc_dissect_DISK_INFO_0_array(tvbuff_t *tvb, int offset,
5037 packet_info *pinfo, proto_tree *tree,
5040 offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep,
5041 srvsvc_dissect_DISK_INFO_0);
5047 * IDL typedef struct {
5048 * IDL long EntriesRead;
5049 * IDL [length_is(EntriesRead)] [size_is(EntriesRead)] [unique] DISK_INFO_0 *disk;
5050 * IDL } DISK_ENUM_CONTAINER;
5053 srvsvc_dissect_DISK_ENUM_CONTAINER(tvbuff_t *tvb, int offset,
5054 packet_info *pinfo, proto_tree *tree,
5057 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5058 hf_srvsvc_num_entries, NULL);
5060 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5061 srvsvc_dissect_DISK_INFO_0_array, NDR_POINTER_UNIQUE,
5062 "DISK_INFO_0 array:", -1, 0);
5068 /* XXX dont know the out parameters. only the in parameters.
5070 * IDL long NetrServerDiskEnum(
5071 * IDL [in] [string] [unique] wchar_t *ServerName,
5072 * IDL [in] long Level,
5073 * IDL [in] [ref] DISK_ENUM_CONTAINER *disk;
5074 * IDL [in] long maxlen,
5075 * IDL [in] [unique] long *resumehandle,
5079 srvsvc_dissect_netrserverdiskenum_rqst(tvbuff_t *tvb, int offset,
5080 packet_info *pinfo, proto_tree *tree,
5083 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5084 srvsvc_dissect_pointer_UNICODE_STRING,
5085 NDR_POINTER_UNIQUE, "Server",
5086 hf_srvsvc_server, 0);
5088 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5089 hf_srvsvc_info_level, 0);
5091 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5092 srvsvc_dissect_DISK_ENUM_CONTAINER,
5093 NDR_POINTER_REF, "Disks",
5096 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5097 hf_srvsvc_preferred_len, 0);
5099 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5100 srvsvc_dissect_ENUM_HANDLE,
5101 NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
5106 /* XXX dont know the out parameters. only the in parameters.
5108 * IDL long NetrServerStatisticsGet(
5109 * IDL [in] [string] [unique] wchar_t *ServerName,
5110 * IDL [in] [string] [unique] wchar_t *Service,
5111 * IDL [in] long Level,
5112 * IDL [in] long Options,
5116 srvsvc_dissect_netrserverstatisticsget_rqst(tvbuff_t *tvb, int offset,
5117 packet_info *pinfo, proto_tree *tree,
5120 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5121 srvsvc_dissect_pointer_UNICODE_STRING,
5122 NDR_POINTER_UNIQUE, "Server",
5123 hf_srvsvc_server, 0);
5125 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5126 srvsvc_dissect_pointer_UNICODE_STRING,
5127 NDR_POINTER_UNIQUE, "Service",
5128 hf_srvsvc_service, 0);
5130 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5131 hf_srvsvc_info_level, 0);
5133 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5134 hf_srvsvc_service_options, 0);
5141 * IDL typedef struct {
5142 * IDL [size_is(transportaddresslen)] char transportaddress;
5143 * IDL } TRANSPORT_ADDRESS;
5146 srvsvc_dissect_TRANSPORT_ADDRESS(tvbuff_t *tvb, int offset,
5147 packet_info *pinfo, proto_tree *tree,
5153 di=pinfo->private_data;
5154 if(di->conformant_run){
5155 /*just a run to handle conformant arrays, nothing to dissect */
5159 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5160 hf_srvsvc_transport_address_len, &len);
5162 proto_tree_add_item(tree, hf_srvsvc_transport_address, tvb, offset,
5170 * IDL typedef struct {
5171 * IDL long numberofvcs;
5172 * IDL [string] [unique] transportname;
5173 * IDL [unique] TRANSPORT_ADDRESS *transportaddress;
5174 * IDL long transportaddresslen;
5175 * IDL [string] [unique] wchar_t *networkaddress;
5176 * IDL } TRANSPORT_INFO_0;
5179 srvsvc_dissect_TRANSPORT_INFO_0(tvbuff_t *tvb, int offset,
5180 packet_info *pinfo, proto_tree *tree,
5183 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5184 hf_srvsvc_transport_numberofvcs, 0);
5186 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5187 srvsvc_dissect_pointer_UNICODE_STRING,
5188 NDR_POINTER_UNIQUE, "Name",
5189 hf_srvsvc_transport_name, 0);
5191 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5192 srvsvc_dissect_TRANSPORT_ADDRESS,
5193 NDR_POINTER_UNIQUE, "Transport Address",
5196 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5197 hf_srvsvc_transport_address_len, 0);
5199 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5200 srvsvc_dissect_pointer_UNICODE_STRING,
5201 NDR_POINTER_UNIQUE, "Network Address",
5202 hf_srvsvc_transport_networkaddress, 0);
5207 srvsvc_dissect_TRANSPORT_INFO_0_array(tvbuff_t *tvb, int offset,
5208 packet_info *pinfo, proto_tree *tree,
5211 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
5212 srvsvc_dissect_TRANSPORT_INFO_0);
5218 * IDL typedef struct {
5219 * IDL long EntriesRead;
5220 * IDL [size_is(EntriesRead)] [unique] TRANSPORT_INFO_0 *trans;
5221 * IDL } SERVER_XPORT_INFO_0_CONTAINER;
5224 srvsvc_dissect_SERVER_XPORT_INFO_0_CONTAINER(tvbuff_t *tvb, int offset,
5225 packet_info *pinfo, proto_tree *tree,
5228 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5229 hf_srvsvc_num_entries, NULL);
5231 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5232 srvsvc_dissect_TRANSPORT_INFO_0_array, NDR_POINTER_UNIQUE,
5233 "TRANSPORT_INFO_0 array:", -1, 0);
5239 * IDL typedef struct {
5240 * IDL long numberofvcs;
5241 * IDL [string] [unique] transportname;
5242 * IDL [unique] TRANSPORT_ADDRESS *transportaddress;
5243 * IDL long transportaddresslen;
5244 * IDL [string] [unique] wchar_t *networkaddress;
5245 * IDL } TRANSPORT_INFO_1;
5248 srvsvc_dissect_TRANSPORT_INFO_1(tvbuff_t *tvb, int offset,
5249 packet_info *pinfo, proto_tree *tree,
5252 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5253 hf_srvsvc_transport_numberofvcs, 0);
5255 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5256 srvsvc_dissect_pointer_UNICODE_STRING,
5257 NDR_POINTER_UNIQUE, "Name",
5258 hf_srvsvc_transport_name, 0);
5260 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5261 srvsvc_dissect_TRANSPORT_ADDRESS,
5262 NDR_POINTER_UNIQUE, "Transport Address",
5265 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5266 hf_srvsvc_transport_address_len, 0);
5268 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5269 srvsvc_dissect_pointer_UNICODE_STRING,
5270 NDR_POINTER_UNIQUE, "Network Address",
5271 hf_srvsvc_transport_networkaddress, 0);
5273 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5274 srvsvc_dissect_pointer_UNICODE_STRING,
5275 NDR_POINTER_UNIQUE, "Domain",
5276 hf_srvsvc_domain, 0);
5281 srvsvc_dissect_TRANSPORT_INFO_1_array(tvbuff_t *tvb, int offset,
5282 packet_info *pinfo, proto_tree *tree,
5285 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
5286 srvsvc_dissect_TRANSPORT_INFO_1);
5292 * IDL typedef struct {
5293 * IDL long EntriesRead;
5294 * IDL [size_is(EntriesRead)] [unique] TRANSPORT_INFO_1 *trans;
5295 * IDL } SERVER_XPORT_INFO_1_CONTAINER;
5298 srvsvc_dissect_SERVER_XPORT_INFO_1_CONTAINER(tvbuff_t *tvb, int offset,
5299 packet_info *pinfo, proto_tree *tree,
5302 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5303 hf_srvsvc_num_entries, NULL);
5305 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5306 srvsvc_dissect_TRANSPORT_INFO_1_array, NDR_POINTER_UNIQUE,
5307 "TRANSPORT_INFO_1 array:", -1, 0);
5314 * IDL typedef [switch_type(long)] union {
5315 * IDL [case(0)] [unique] SERVER_XPORT_INFO_0_CONTAINER *xp0;
5316 * IDL [case(1)] [unique] SERVER_XPORT_INFO_1_CONTAINER *xp1;
5317 * IDL } SERVER_XPORT_ENUM_UNION;
5320 srvsvc_dissect_SERVER_XPORT_ENUM_UNION(tvbuff_t *tvb, int offset,
5321 packet_info *pinfo, proto_tree *tree,
5328 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_info_level, &level);
5332 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5333 srvsvc_dissect_SERVER_XPORT_INFO_0_CONTAINER,
5334 NDR_POINTER_UNIQUE, "SERVER_XPORT_INFO_0_CONTAINER:",
5338 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5339 srvsvc_dissect_SERVER_XPORT_INFO_1_CONTAINER,
5340 NDR_POINTER_UNIQUE, "SERVER_XPORT_INFO_1_CONTAINER:",
5349 * IDL typedef struct {
5351 * IDL SERVER_XPORT_ENUM_UNION xport;
5352 * IDL } SERVER_XPORT_ENUM_STRUCT;
5355 srvsvc_dissect_SERVER_XPORT_ENUM_STRUCT(tvbuff_t *tvb, int offset,
5356 packet_info *pinfo, proto_tree *tree,
5359 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5360 hf_srvsvc_info_level, 0);
5362 offset = srvsvc_dissect_SERVER_XPORT_ENUM_UNION(tvb, offset,
5369 /* XXX dont know the out parameters. only the in parameters.
5371 * IDL long NetrServerTransportAdd(
5372 * IDL [in] [string] [unique] wchar_t *ServerName,
5373 * IDL [in] long Level,
5374 * IDL [in] [ref] TRANSPORT_INFO_0 *trans;
5378 srvsvc_dissect_netrservertransportadd_rqst(tvbuff_t *tvb, int offset,
5379 packet_info *pinfo, proto_tree *tree,
5382 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5383 srvsvc_dissect_pointer_UNICODE_STRING,
5384 NDR_POINTER_UNIQUE, "Server",
5385 hf_srvsvc_server, 0);
5387 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5388 hf_srvsvc_info_level, 0);
5390 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5391 srvsvc_dissect_TRANSPORT_INFO_0,
5392 NDR_POINTER_REF, "Transports",
5399 /* XXX dont know the out parameters. only the in parameters.
5401 * IDL long NetrServerTransportEnum(
5402 * IDL [in] [string] [unique] wchar_t *ServerName,
5403 * IDL [in] [ref] SERVER_XPORT_ENUM_STRUCT *xport;
5404 * IDL [in] long MaxLen,
5405 * IDL [in] [unique] long *resumehandle;
5409 srvsvc_dissect_netrservertransportenum_rqst(tvbuff_t *tvb, int offset,
5410 packet_info *pinfo, proto_tree *tree,
5413 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5414 srvsvc_dissect_pointer_UNICODE_STRING,
5415 NDR_POINTER_UNIQUE, "Server",
5416 hf_srvsvc_server, 0);
5418 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5419 srvsvc_dissect_SERVER_XPORT_ENUM_STRUCT,
5420 NDR_POINTER_REF, "Transports",
5423 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5424 hf_srvsvc_preferred_len, 0);
5426 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5427 srvsvc_dissect_ENUM_HANDLE,
5428 NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
5433 /* XXX dont know the out parameters. only the in parameters.
5435 * IDL long NetrServerTransportDel(
5436 * IDL [in] [string] [unique] wchar_t *ServerName,
5437 * IDL [in] long Level,
5438 * IDL [in] [ref] TRANSPORT_INFO_0 *trans;
5442 srvsvc_dissect_netrservertransportdel_rqst(tvbuff_t *tvb, int offset,
5443 packet_info *pinfo, proto_tree *tree,
5446 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5447 srvsvc_dissect_pointer_UNICODE_STRING,
5448 NDR_POINTER_UNIQUE, "Server",
5449 hf_srvsvc_server, 0);
5451 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5452 hf_srvsvc_info_level, 0);
5454 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5455 srvsvc_dissect_TRANSPORT_INFO_0,
5456 NDR_POINTER_REF, "Transports",
5462 /* XXX dont know the out parameters. only the in parameters.
5464 * IDL long NetrRemoteTOD(
5465 * IDL [in] [string] [unique] wchar_t *ServerName,
5469 srvsvc_dissect_netrremotetod_rqst(tvbuff_t *tvb, int offset,
5470 packet_info *pinfo, proto_tree *tree,
5473 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5474 srvsvc_dissect_pointer_UNICODE_STRING,
5475 NDR_POINTER_UNIQUE, "Server",
5476 hf_srvsvc_server, 0);
5481 /* XXX dont know the out parameters. only the in parameters.
5483 * IDL long NetrSetServerServiceBits(
5484 * IDL [in] [string] [unique] wchar_t *ServerName,
5485 * IDL [in] [string] [unique] wchar_t *Transport,
5486 * IDL [in] long ServiceBits;
5487 * IDL [in] long UpdateImmediately;
5491 srvsvc_dissect_netrsetserverservicebits_rqst(tvbuff_t *tvb, int offset,
5492 packet_info *pinfo, proto_tree *tree,
5495 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5496 srvsvc_dissect_pointer_UNICODE_STRING,
5497 NDR_POINTER_UNIQUE, "Server",
5498 hf_srvsvc_server, 0);
5500 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5501 srvsvc_dissect_pointer_UNICODE_STRING,
5502 NDR_POINTER_UNIQUE, "Transport:",
5503 hf_srvsvc_transport, 0);
5505 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5506 hf_srvsvc_service_bits, NULL);
5508 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5509 hf_srvsvc_update_immediately, NULL);
5514 /* XXX dont know the out parameters. only the in parameters.
5516 * IDL long NetrPathType(
5517 * IDL [in] [string] [unique] wchar_t *ServerName,
5518 * IDL [in] [string] [ref] wchar_t *PathName,
5519 * IDL [in] long PathFlags;
5523 srvsvc_dissect_netrpathtype_rqst(tvbuff_t *tvb, int offset,
5524 packet_info *pinfo, proto_tree *tree,
5527 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5528 srvsvc_dissect_pointer_UNICODE_STRING,
5529 NDR_POINTER_UNIQUE, "Server",
5530 hf_srvsvc_server, 0);
5532 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5533 srvsvc_dissect_pointer_UNICODE_STRING,
5534 NDR_POINTER_REF, "Path:",
5537 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5538 hf_srvsvc_path_flags, NULL);
5543 /* XXX dont know the out parameters. only the in parameters.
5545 * IDL long NetrPathCanonicalize(
5546 * IDL [in] [string] [unique] wchar_t *ServerName,
5547 * IDL [in] [string] [ref] wchar_t *PathName,
5548 * IDL [in] long OutBufLen;
5549 * IDL [in] [string] [ref] wchar_t *Prefix,
5550 * IDL [in] long PathType;
5551 * IDL [in] long PathFlags;
5555 srvsvc_dissect_netrpathcanonicalize_rqst(tvbuff_t *tvb, int offset,
5556 packet_info *pinfo, proto_tree *tree,
5559 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5560 srvsvc_dissect_pointer_UNICODE_STRING,
5561 NDR_POINTER_UNIQUE, "Server",
5562 hf_srvsvc_server, 0);
5564 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5565 srvsvc_dissect_pointer_UNICODE_STRING,
5566 NDR_POINTER_REF, "Path:",
5569 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5570 hf_srvsvc_outbuflen, NULL);
5572 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5573 srvsvc_dissect_pointer_UNICODE_STRING,
5574 NDR_POINTER_REF, "Prefix:",
5575 hf_srvsvc_prefix, 0);
5577 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5578 hf_srvsvc_path_type, NULL);
5580 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5581 hf_srvsvc_path_flags, NULL);
5586 /* XXX dont know the out parameters. only the in parameters.
5588 * IDL long NetrPathCompare(
5589 * IDL [in] [string] [unique] wchar_t *ServerName,
5590 * IDL [in] [string] [ref] wchar_t *PathName1,
5591 * IDL [in] [string] [ref] wchar_t *PathName2,
5592 * IDL [in] long PathType;
5593 * IDL [in] long PathFlags;
5597 srvsvc_dissect_netrpathcompare_rqst(tvbuff_t *tvb, int offset,
5598 packet_info *pinfo, proto_tree *tree,
5601 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5602 srvsvc_dissect_pointer_UNICODE_STRING,
5603 NDR_POINTER_UNIQUE, "Server",
5604 hf_srvsvc_server, 0);
5606 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5607 srvsvc_dissect_pointer_UNICODE_STRING,
5608 NDR_POINTER_REF, "Path 1:",
5611 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5612 srvsvc_dissect_pointer_UNICODE_STRING,
5613 NDR_POINTER_REF, "Path 2:",
5616 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5617 hf_srvsvc_path_type, NULL);
5619 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5620 hf_srvsvc_path_flags, NULL);
5625 /* XXX dont know the out parameters. only the in parameters.
5627 * IDL long NetrNameValidate(
5628 * IDL [in] [string] [unique] wchar_t *ServerName,
5629 * IDL [in] [string] [ref] wchar_t *PathName,
5630 * IDL [in] long PathType;
5631 * IDL [in] long PathFlags;
5635 srvsvc_dissect_netrnamevalidate_rqst(tvbuff_t *tvb, int offset,
5636 packet_info *pinfo, proto_tree *tree,
5639 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5640 srvsvc_dissect_pointer_UNICODE_STRING,
5641 NDR_POINTER_UNIQUE, "Server",
5642 hf_srvsvc_server, 0);
5644 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5645 srvsvc_dissect_pointer_UNICODE_STRING,
5646 NDR_POINTER_REF, "Path:",
5649 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5650 hf_srvsvc_path_type, NULL);
5652 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5653 hf_srvsvc_path_flags, NULL);
5658 /* XXX dont know the out parameters. only the in parameters.
5660 * IDL long NetrNameCanonicalize(
5661 * IDL [in] [string] [unique] wchar_t *ServerName,
5662 * IDL [in] [string] [ref] wchar_t *PathName,
5663 * IDL [in] long OutBufLen;
5664 * IDL [in] long PathType;
5665 * IDL [in] long PathFlags;
5669 srvsvc_dissect_netrnamecanonicalize_rqst(tvbuff_t *tvb, int offset,
5670 packet_info *pinfo, proto_tree *tree,
5673 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5674 srvsvc_dissect_pointer_UNICODE_STRING,
5675 NDR_POINTER_UNIQUE, "Server",
5676 hf_srvsvc_server, 0);
5678 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5679 srvsvc_dissect_pointer_UNICODE_STRING,
5680 NDR_POINTER_REF, "Path:",
5683 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5684 hf_srvsvc_outbuflen, NULL);
5686 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5687 hf_srvsvc_path_type, NULL);
5689 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5690 hf_srvsvc_path_flags, NULL);
5695 /* XXX dont know the out parameters. only the in parameters.
5697 * IDL long NetrNameCompare(
5698 * IDL [in] [string] [unique] wchar_t *ServerName,
5699 * IDL [in] [string] [ref] wchar_t *PathName1,
5700 * IDL [in] [string] [ref] wchar_t *PathName2,
5701 * IDL [in] long PathType;
5702 * IDL [in] long PathFlags;
5706 srvsvc_dissect_netrnamecompare_rqst(tvbuff_t *tvb, int offset,
5707 packet_info *pinfo, proto_tree *tree,
5710 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5711 srvsvc_dissect_pointer_UNICODE_STRING,
5712 NDR_POINTER_UNIQUE, "Server",
5713 hf_srvsvc_server, 0);
5715 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5716 srvsvc_dissect_pointer_UNICODE_STRING,
5717 NDR_POINTER_REF, "Path 1:",
5720 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5721 srvsvc_dissect_pointer_UNICODE_STRING,
5722 NDR_POINTER_REF, "Path 2:",
5725 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5726 hf_srvsvc_path_type, NULL);
5728 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5729 hf_srvsvc_path_flags, NULL);
5734 /* XXX dont know the out parameters. only the in parameters.
5736 * IDL long NetrShareEnumSticky(
5737 * IDL [in] [string] [unique] wchar_t *ServerName,
5738 * IDL [in] [ref] SHARE_ENUM_STRUCT *share,
5739 * IDL [in] long MaxLen,
5740 * IDL [in] [unique] *ResumeHandle
5744 srvsvc_dissect_netrshareenumsticky_rqst(tvbuff_t *tvb, int offset,
5745 packet_info *pinfo, proto_tree *tree,
5748 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5749 srvsvc_dissect_pointer_UNICODE_STRING,
5750 NDR_POINTER_UNIQUE, "Server",
5751 hf_srvsvc_server, 0);
5753 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5754 srvsvc_dissect_SHARE_ENUM_STRUCT,
5755 NDR_POINTER_REF, "Shares",
5758 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5759 hf_srvsvc_preferred_len, 0);
5761 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5762 srvsvc_dissect_ENUM_HANDLE,
5763 NDR_POINTER_UNIQUE, "Enum Handle", -1, 0);
5768 /* XXX dont know the out parameters. only the in parameters.
5770 * IDL long NetrShareDelStart(
5771 * IDL [in] [string] [unique] wchar_t *ServerName,
5772 * IDL [in] [string] [ref] wchar_t *Share,
5773 * IDL long reserved;
5777 srvsvc_dissect_netrsharedelstart_rqst(tvbuff_t *tvb, int offset,
5778 packet_info *pinfo, proto_tree *tree,
5781 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5782 srvsvc_dissect_pointer_UNICODE_STRING,
5783 NDR_POINTER_UNIQUE, "Server",
5784 hf_srvsvc_server, 0);
5786 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5787 srvsvc_dissect_pointer_UNICODE_STRING,
5788 NDR_POINTER_REF, "Share",
5789 hf_srvsvc_share, 0);
5791 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
5792 hf_srvsvc_reserved, NULL);
5797 /* XXX dont know the out parameters. only the in parameters.
5799 * IDL long NetrShareDelCommit(
5800 * IDL [in] contect_handle
5804 srvsvc_dissect_netrsharedelcommit_rqst(tvbuff_t *tvb, int offset,
5805 packet_info *pinfo, proto_tree *tree,
5808 offset = dissect_nt_policy_hnd(tvb, offset, pinfo, tree, drep,
5809 hf_srvsvc_hnd, NULL, TRUE, FALSE);
5814 /* XXX dont know the out parameters. only the in parameters.
5816 * IDL long NetrGetFileSecurity(
5817 * IDL [in] [string] [unique] wchar_t *ServerName,
5818 * IDL [in] [string] [unique] wchar_t *Share,
5819 * IDL [in] [string] [ref] wchar_t *File,
5820 * IDL [in] long requetedinformation
5824 srvsvc_dissect_netrgetfilesecurity_rqst(tvbuff_t *tvb, int offset,
5825 packet_info *pinfo, proto_tree *tree,
5828 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5829 srvsvc_dissect_pointer_UNICODE_STRING,
5830 NDR_POINTER_UNIQUE, "Server",
5831 hf_srvsvc_server, 0);
5833 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5834 srvsvc_dissect_pointer_UNICODE_STRING,
5835 NDR_POINTER_UNIQUE, "Share",
5836 hf_srvsvc_share, 0);
5838 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5839 srvsvc_dissect_pointer_UNICODE_STRING,
5840 NDR_POINTER_REF, "Path",
5844 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5845 hf_srvsvc_info_level, 0);
5850 /* XXX dont know the out parameters. only the in parameters.
5852 * IDL long NetrSetFileSecurity(
5853 * IDL [in] [string] [unique] wchar_t *ServerName,
5854 * IDL [in] [string] [unique] wchar_t *Share,
5855 * IDL [in] [string] [ref] wchar_t *File,
5856 * IDL [in] long sequrityinformation
5857 * IDL SECDESC [ref] *securitysecriptor; 4byte-len followed by bytestring
5861 srvsvc_dissect_netrsetfilesecurity_rqst(tvbuff_t *tvb, int offset,
5862 packet_info *pinfo, proto_tree *tree,
5865 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5866 srvsvc_dissect_pointer_UNICODE_STRING,
5867 NDR_POINTER_UNIQUE, "Server",
5868 hf_srvsvc_server, 0);
5870 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5871 srvsvc_dissect_pointer_UNICODE_STRING,
5872 NDR_POINTER_UNIQUE, "Share",
5873 hf_srvsvc_share, 0);
5875 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5876 srvsvc_dissect_pointer_UNICODE_STRING,
5877 NDR_POINTER_REF, "Path",
5881 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5882 hf_srvsvc_info_level, 0);
5884 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5885 lsa_dissect_LSA_SECURITY_DESCRIPTOR_data, NDR_POINTER_REF,
5886 "LSA SECURITY DESCRIPTOR data:", -1, 0);
5891 /* XXX dont know the out parameters. only the in parameters.
5893 * IDL long NetrServerTransportAddEx(
5894 * IDL [in] [string] [unique] wchar_t *ServerName,
5895 * IDL [in] long Level
5896 * IDL [in] [ref] SERVER_XPORT_ENUM_STRUCT *sxes;
5900 srvsvc_dissect_netrservertransportaddex_rqst(tvbuff_t *tvb, int offset,
5901 packet_info *pinfo, proto_tree *tree,
5904 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5905 srvsvc_dissect_pointer_UNICODE_STRING,
5906 NDR_POINTER_UNIQUE, "Server",
5907 hf_srvsvc_server, 0);
5909 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5910 hf_srvsvc_info_level, 0);
5912 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5913 srvsvc_dissect_SERVER_XPORT_ENUM_STRUCT,
5914 NDR_POINTER_REF, "Transports",
5920 /* XXX dont know the out parameters. only the in parameters.
5922 * IDL long NetrServerSetServiceBits2(
5923 * IDL [in] [string] [unique] wchar_t *ServerName,
5924 * IDL [in] [string] [unique] wchar_t *EmulatedServerName,
5925 * IDL [in] [string] [unique] wchar_t *Transport,
5926 * IDL [in] long servicebitsofinterest
5927 * IDL [in] long servicebits
5928 * IDL [in] long updateimmediately
5932 srvsvc_dissect_netrserversetservicebits2_rqst(tvbuff_t *tvb, int offset,
5933 packet_info *pinfo, proto_tree *tree,
5936 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5937 srvsvc_dissect_pointer_UNICODE_STRING,
5938 NDR_POINTER_UNIQUE, "Server",
5939 hf_srvsvc_server, 0);
5941 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5942 srvsvc_dissect_pointer_UNICODE_STRING,
5943 NDR_POINTER_UNIQUE, "Emulated Server",
5944 hf_srvsvc_emulated_server, 0);
5946 offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
5947 srvsvc_dissect_pointer_UNICODE_STRING,
5948 NDR_POINTER_UNIQUE, "Transport:",
5949 hf_srvsvc_transport, 0);
5951 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5952 hf_srvsvc_service_bits_of_interest, NULL);
5954 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5955 hf_srvsvc_service_bits, NULL);
5957 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
5958 hf_srvsvc_update_immediately, NULL);
5967 static dcerpc_sub_dissector dcerpc_srvsvc_dissectors[] = {
5968 {SRV_NETRCHARDEVENUM, "NetrCharDevEnum",
5969 srvsvc_dissect_netrchardevenum_rqst,
5971 {SRV_NETRCHARDEVGETINFO, "NetrCharDevGetInfo",
5972 srvsvc_dissect_netrchardevgetinfo_rqst,
5974 {SRV_NETRCHARDEVCONTROL, "NetrCharDevControl",
5975 srvsvc_dissect_netrchardevcontrol_rqst,
5977 {SRV_NETRCHARDEVQENUM, "NetrCharDevQEnum",
5978 srvsvc_dissect_netrchardevqenum_rqst,
5980 {SRV_NETRCHARDEVQGETINFO, "NetrCharDevQGetInfo",
5981 srvsvc_dissect_netrchardevqgetinfo_rqst,
5983 {SRV_NETRCHARDEVQSETINFO, "NetrCharDevQSetInfo",
5984 srvsvc_dissect_netrchardevqsetinfo_rqst,
5986 {SRV_NETRCHARDEVQPURGE, "NetrCharDevQPurge",
5987 srvsvc_dissect_netrchardevqpurge_rqst,
5989 {SRV_NETRCHARDEVQPURGESELF, "NetrCharDevQPurgeSelf",
5990 srvsvc_dissect_netrchardevqpurgeself_rqst,
5992 {SRV_NETRCONNECTIONENUM, "NetrConnectionEnum",
5993 srvsvc_dissect_netrconnectionenum_rqst,
5995 {SRV_NETRFILEENUM, "NetrFileEnum",
5996 srvsvc_dissect_netrfileenum_rqst,
5998 {SRV_NETRFILEGETINFO, "NetrFileGetInfo",
5999 srvsvc_dissect_netrfilegetinfo_rqst,
6001 {SRV_NETRFILECLOSE, "NetrFileClose",
6002 srvsvc_dissect_netrfileclose_rqst,
6004 {SRV_NETRSESSIONENUM, "NetrSessionEnum",
6005 srvsvc_dissect_netrsessionenum_rqst,
6007 {SRV_NETRSESSIONDEL, "NetrSessionDel",
6008 srvsvc_dissect_netrsessiondel_rqst,
6010 {SRV_NETRSHAREADD, "NetrShareAdd",
6011 srvsvc_dissect_netrshareadd_rqst,
6013 {SRV_NETRSHAREENUM, "NetrShareEnum",
6014 srvsvc_dissect_netrshareenum_rqst,
6015 srvsvc_dissect_netrshareenum_reply},
6016 {SRV_NETRSHAREGETINFO, "NetrShareGetInfo",
6017 srvsvc_dissect_netrsharegetinfo_rqst,
6018 srvsvc_dissect_netrsharegetinfo_reply},
6019 {SRV_NETRSHARESETINFO, "NetrShareSetInfo",
6020 srvsvc_dissect_netrsharesetinfo_rqst,
6022 {SRV_NETRSHAREDEL, "NetrShareDel",
6023 srvsvc_dissect_netrsharedel_rqst,
6025 {SRV_NETRSHAREDELSTICKY, "NetrShareDelSticky",
6026 srvsvc_dissect_netrsharedelsticky_rqst,
6028 {SRV_NETRSHARECHECK, "NetrShareCheck",
6029 srvsvc_dissect_netrsharecheck_rqst,
6031 {SRV_NETRSERVERGETINFO, "NetrServerGetInfo",
6032 srvsvc_dissect_netrservergetinfo_rqst,
6033 srvsvc_dissect_netrservergetinfo_reply},
6034 {SRV_NETRSERVERSETINFO, "NetrServerSetInfo",
6035 srvsvc_dissect_netrserversetinfo_rqst,
6037 {SRV_NETRSERVERDISKENUM, "NetrServerDiskEnum",
6038 srvsvc_dissect_netrserverdiskenum_rqst,
6040 {SRV_NETRSERVERSTATISTICSGET, "NetrServerStatisticsGet",
6041 srvsvc_dissect_netrserverstatisticsget_rqst,
6043 {SRV_NETRSERVERTRANSPORTADD, "NetrServerTransportAdd",
6044 srvsvc_dissect_netrservertransportadd_rqst,
6046 {SRV_NETRSERVERTRANSPORTENUM, "NetrServerTransportEnum",
6047 srvsvc_dissect_netrservertransportenum_rqst,
6049 {SRV_NETRSERVERTRANSPORTDEL, "NetrServerTransportDel",
6050 srvsvc_dissect_netrservertransportdel_rqst,
6052 {SRV_NETRREMOTETOD, "NetrRemoteTOD",
6053 srvsvc_dissect_netrremotetod_rqst,
6055 {SRV_NETRSERVERSETSERVICEBITS, "NetrServerSetServiceBits",
6056 srvsvc_dissect_netrsetserverservicebits_rqst,
6058 {SRV_NETRPRPATHTYPE, "NetrPathType",
6059 srvsvc_dissect_netrpathtype_rqst,
6061 {SRV_NETRPRPATHCANONICALIZE, "NetrpPathCanonicalize",
6062 srvsvc_dissect_netrpathcanonicalize_rqst,
6064 {SRV_NETRPRPATHCOMPARE, "NetrpPathCompare",
6065 srvsvc_dissect_netrpathcompare_rqst,
6067 {SRV_NETRPRNAMEVALIDATE, "NetrpNameValidate",
6068 srvsvc_dissect_netrnamevalidate_rqst,
6070 {SRV_NETRPRNAMECANONICALIZE, "NetrpNameCanonicalize",
6071 srvsvc_dissect_netrnamecanonicalize_rqst,
6073 {SRV_NETRPRNAMECOMPARE, "NetrpNameCompare",
6074 srvsvc_dissect_netrnamecompare_rqst,
6076 {SRV_NETRSHAREENUMSTICKY, "NetrShareEnumSticky",
6077 srvsvc_dissect_netrshareenumsticky_rqst,
6079 {SRV_NETRSHAREDELSTART, "NetrShareDelStart",
6080 srvsvc_dissect_netrsharedelstart_rqst,
6082 {SRV_NETRSHAREDELCOMMIT, "NetrShareDelCommit",
6083 srvsvc_dissect_netrsharedelcommit_rqst,
6085 {SRV_NETRPGETFILESECURITY, "NetrpGetFileSecurity",
6086 srvsvc_dissect_netrgetfilesecurity_rqst,
6088 {SRV_NETRPSETFILESECURITY, "NetrpSetFileSecurity",
6089 srvsvc_dissect_netrsetfilesecurity_rqst,
6091 {SRV_NETRSERVERTRANSPORTADDEX, "NetrServerTransportAddEx",
6092 srvsvc_dissect_netrservertransportaddex_rqst,
6094 {SRV_NETRSERVERSETSERVICEBITS2, "NetrServerSetServiceBits2",
6095 srvsvc_dissect_netrserversetservicebits2_rqst,
6097 {0, NULL, NULL, NULL}
6100 static const value_string platform_id_vals[] = {
6103 { 500, "Windows NT" },
6110 proto_register_dcerpc_srvsvc(void)
6112 static hf_register_info hf[] = {
6113 { &hf_srvsvc_server,
6114 { "Server", "srvsvc.server", FT_STRING, BASE_NONE,
6115 NULL, 0x0, "Server Name", HFILL}},
6116 { &hf_srvsvc_emulated_server,
6117 { "Emulated Server", "srvsvc.emulated_server", FT_STRING, BASE_NONE,
6118 NULL, 0x0, "Emulated Server Name", HFILL}},
6119 { &hf_srvsvc_alerts,
6120 { "Alerts", "srvsvc.alerts", FT_STRING, BASE_NONE,
6121 NULL, 0x0, "Alerts", HFILL}},
6123 { "Guest Account", "srvsvc.guest", FT_STRING, BASE_NONE,
6124 NULL, 0x0, "Guest Account", HFILL}},
6125 { &hf_srvsvc_transport,
6126 { "Transport", "srvsvc.transport", FT_STRING, BASE_NONE,
6127 NULL, 0x0, "Transport Name", HFILL}},
6128 { &hf_srvsvc_session,
6129 { "Session", "srvsvc.session", FT_STRING, BASE_NONE,
6130 NULL, 0x0, "Session Name", HFILL}},
6131 { &hf_srvsvc_qualifier,
6132 { "Qualifier", "srvsvc.qualifier", FT_STRING, BASE_NONE,
6133 NULL, 0x0, "Connection Qualifier", HFILL}},
6134 { &hf_srvsvc_computer,
6135 { "Computer", "srvsvc.computer", FT_STRING, BASE_NONE,
6136 NULL, 0x0, "Computer Name", HFILL}},
6137 { &hf_srvsvc_chrdev,
6138 { "Char Device", "srvsvc.chrdev", FT_STRING, BASE_NONE,
6139 NULL, 0x0, "Char Device Name", HFILL}},
6140 { &hf_srvsvc_chrdevq,
6141 { "Device Queue", "srvsvc.chrdevq", FT_STRING, BASE_NONE,
6142 NULL, 0x0, "Char Device Queue Name", HFILL}},
6144 { "User", "srvsvc.user", FT_STRING, BASE_NONE,
6145 NULL, 0x0, "User Name", HFILL}},
6147 { "Path", "srvsvc.path", FT_STRING, BASE_NONE,
6148 NULL, 0x0, "Path", HFILL}},
6149 { &hf_srvsvc_share_passwd,
6150 { "Share Passwd", "srvsvc.share_passwd", FT_STRING, BASE_NONE,
6151 NULL, 0x0, "Password for this share", HFILL}},
6152 { &hf_srvsvc_chrdev_status,
6153 { "Status", "srvsvc.chrdev_status", FT_UINT32, BASE_HEX,
6154 NULL, 0x0, "Char Device Status", HFILL}},
6155 { &hf_srvsvc_chrqpri,
6156 { "Priority", "srvsvc.chrqdev_pri", FT_UINT32, BASE_HEX,
6157 NULL, 0x0, "Char QDevice Priority", HFILL}},
6158 { &hf_srvsvc_chrqnumusers,
6159 { "Num Users", "srvsvc.chrqdev_numusers", FT_UINT32, BASE_DEC,
6160 NULL, 0x0, "Char QDevice Number Of Users", HFILL}},
6161 { &hf_srvsvc_chrqnumahead,
6162 { "Num Ahead", "srvsvc.chrqdev_numahead", FT_UINT32, BASE_DEC,
6163 NULL, 0x0, "", HFILL}},
6164 { &hf_srvsvc_chrdev_opcode,
6165 { "Opcode", "srvsvc.chrdev_opcode", FT_UINT32, BASE_HEX,
6166 NULL, 0x0, "Opcode to apply to the Char Device", HFILL}},
6167 { &hf_srvsvc_chrdev_time,
6168 { "Time", "srvsvc.chrdev_time", FT_UINT32, BASE_DEC,
6169 NULL, 0x0, "Char Device Time?", HFILL}},
6170 { &hf_srvsvc_info_level,
6171 { "Info Level", "svrsvc.info_level", FT_UINT32,
6172 BASE_DEC, NULL, 0x0, "Info Level", HFILL}},
6174 { "Return code", "srvsvc.rc", FT_UINT32,
6175 BASE_HEX, VALS(NT_errors), 0x0, "Return Code", HFILL}},
6177 { &hf_srvsvc_platform_id,
6178 { "Platform ID", "srvsvc.info.platform_id", FT_UINT32,
6179 BASE_DEC, VALS(platform_id_vals), 0x0, "Platform ID", HFILL}},
6180 { &hf_srvsvc_ver_major,
6181 { "Major Version", "srvsvc.version.major", FT_UINT32,
6182 BASE_DEC, NULL, 0x0, "Major Version", HFILL}},
6183 { &hf_srvsvc_ver_minor,
6184 { "Minor Version", "srvsvc.version.minor", FT_UINT32,
6185 BASE_DEC, NULL, 0x0, "Minor Version", HFILL}},
6186 /* XXX - Should break this out. We know it from browsing. */
6187 { &hf_srvsvc_server_type,
6188 { "Server Type", "srvsvc.server.type", FT_UINT32,
6189 BASE_HEX, NULL, 0x0, "Server Type", HFILL}},
6190 { &hf_srvsvc_client_type,
6191 { "Client Type", "srvsvc.Client.type", FT_STRING,
6192 BASE_NONE, NULL, 0x0, "Client Type", HFILL}},
6193 { &hf_srvsvc_comment,
6194 { "Comment", "srvsvc.comment", FT_STRING,
6195 BASE_NONE, NULL, 0x0, "Comment", HFILL}},
6197 { "Users", "srvsvc.users", FT_UINT32,
6198 BASE_DEC, NULL, 0x0 , "User Count", HFILL}},
6200 { "Disc", "srvsvc.disc", FT_UINT32,
6201 BASE_DEC, NULL, 0x0 , "", HFILL}},
6202 { &hf_srvsvc_hidden,
6203 { "Hidden", "srvsvc.hidden", FT_UINT32,
6204 BASE_DEC, NULL, 0x0, "Hidden", HFILL}},
6205 { &hf_srvsvc_reserved,
6206 { "Reserved", "srvsvc.reserved", FT_UINT32,
6207 BASE_DEC, NULL, 0x0, "Announce", HFILL }},
6208 { &hf_srvsvc_announce,
6209 { "Announce", "srvsvc.announce", FT_UINT32,
6210 BASE_DEC, NULL, 0x0, "Announce", HFILL }},
6211 { &hf_srvsvc_anndelta,
6212 { "Announce Delta", "srvsvc.ann_delta", FT_UINT32,
6213 BASE_DEC, NULL, 0x0, "Announce Delta", HFILL}},
6214 { &hf_srvsvc_licences,
6215 { "Licences", "srvsvc.licences", FT_UINT32,
6216 BASE_DEC, NULL, 0x0, "Licences", HFILL}},
6217 { &hf_srvsvc_user_path,
6218 { "User Path", "srvsvc.user_path", FT_STRING,
6219 BASE_NONE, NULL, 0x0, "User Path", HFILL}},
6221 { "Share", "srvsvc.share", FT_STRING,
6222 BASE_NONE, NULL, 0x0, "Share", HFILL}},
6223 { &hf_srvsvc_share_type,
6224 { "Share Type", "srvsvc.share_type", FT_UINT32,
6225 BASE_HEX, VALS(share_type_vals), 0x0, "Share Type", HFILL}},
6226 { &hf_srvsvc_file_id,
6227 { "File ID", "srvsvc.file_id", FT_UINT32,
6228 BASE_DEC, NULL, 0x0, "File ID", HFILL}},
6230 { "Permissions", "srvsvc.perm", FT_UINT32,
6231 BASE_HEX, NULL, 0x0, "Permissions", HFILL}},
6232 { &hf_srvsvc_file_num_locks,
6233 { "Num Locks", "srvsvc.file_num_locks", FT_UINT32,
6234 BASE_DEC, NULL, 0x0, "Number of locks for file", HFILL}},
6235 { &hf_srvsvc_con_id,
6236 { "Connection ID", "srvsvc.con_id", FT_UINT32,
6237 BASE_DEC, NULL, 0x0, "Connection ID", HFILL}},
6238 { &hf_srvsvc_max_uses,
6239 { "Max Uses", "srvsvc.max_uses", FT_UINT32,
6240 BASE_DEC, NULL, 0x0, "Max Uses", HFILL}},
6241 { &hf_srvsvc_cur_uses,
6242 { "Current Uses", "srvsvc.cur_uses", FT_UINT32,
6243 BASE_DEC, NULL, 0x0, "Current Uses", HFILL}},
6244 { &hf_srvsvc_con_num_opens,
6245 { "Num Opens", "srvsvc.con_num_opens", FT_UINT32,
6246 BASE_DEC, NULL, 0x0, "Num Opens", HFILL}},
6247 { &hf_srvsvc_session_num_opens,
6248 { "Num Opens", "srvsvc.session.num_opens", FT_UINT32,
6249 BASE_DEC, NULL, 0x0, "Num Opens", HFILL}},
6250 { &hf_srvsvc_session_time,
6251 { "Time", "srvsvc.session.time", FT_UINT32,
6252 BASE_DEC, NULL, 0x0, "Time", HFILL}},
6253 { &hf_srvsvc_session_idle_time,
6254 { "Idle Time", "srvsvc.session.idle_time", FT_UINT32,
6255 BASE_DEC, NULL, 0x0, "Idle Time", HFILL}},
6256 { &hf_srvsvc_session_user_flags,
6257 { "User Flags", "srvsvc.session.user_flags", FT_UINT32,
6258 BASE_HEX, NULL, 0x0, "User Flags", HFILL}},
6259 { &hf_srvsvc_con_type,
6260 { "Connection Type", "srvsvc.con_type", FT_UINT32,
6261 BASE_DEC, NULL, 0x0, "Connection Type", HFILL}},
6262 { &hf_srvsvc_con_time,
6263 { "Connection Time", "srvsvc.con_time", FT_UINT32,
6264 BASE_DEC, NULL, 0x0, "Connection Time", HFILL}},
6265 { &hf_srvsvc_ulist_mtime,
6266 { "Ulist mtime", "srvsvc.ulist_mtime", FT_UINT32,
6267 BASE_DEC, NULL, 0x0, "Ulist mtime", HFILL}},
6268 { &hf_srvsvc_glist_mtime,
6269 { "Glist mtime", "srvsvc.glist_mtime", FT_UINT32,
6270 BASE_DEC, NULL, 0x0, "Glist mtime", HFILL}},
6271 { &hf_srvsvc_alist_mtime,
6272 { "Alist mtime", "srvsvc.alist_mtime", FT_UINT32,
6273 BASE_DEC, NULL, 0x0, "Alist mtime", HFILL}},
6274 { &hf_srvsvc_connections,
6275 { "Connections", "srvsvc.connections", FT_UINT32,
6276 BASE_DEC, NULL, 0x0, "Number of Connections", HFILL}},
6277 { &hf_srvsvc_shares,
6278 { "Shares", "srvsvc.shares", FT_UINT32,
6279 BASE_DEC, NULL, 0x0, "Number of Shares", HFILL}},
6280 { &hf_srvsvc_diskalert,
6281 { "Disk Alerts", "srvsvc.diskalert", FT_UINT32,
6282 BASE_DEC, NULL, 0x0, "Number of disk alerts", HFILL}},
6283 { &hf_srvsvc_netioalert,
6284 { "Net I/O Alerts", "srvsvc.netioalert", FT_UINT32,
6285 BASE_DEC, NULL, 0x0, "Number of Net I/O Alerts", HFILL}},
6286 { &hf_srvsvc_maxauditsz,
6287 { "Max Audits", "srvsvc.maxaudits", FT_UINT32,
6288 BASE_DEC, NULL, 0x0, "Maximum number of audits", HFILL}},
6289 { &hf_srvsvc_srvheuristics,
6290 { "Server Heuristics", "srvsvc.srvheuristics", FT_STRING,
6291 BASE_DEC, NULL, 0x0, "Server Heuristics", HFILL}},
6292 { &hf_srvsvc_openfiles,
6293 { "Open Files", "srvsvc.openfiles", FT_UINT32,
6294 BASE_DEC, NULL, 0x0, "Open Files", HFILL}},
6295 { &hf_srvsvc_opensearch,
6296 { "Open Search", "srvsvc.opensearch", FT_UINT32,
6297 BASE_DEC, NULL, 0x0, "Open Search", HFILL}},
6298 { &hf_srvsvc_activelocks,
6299 { "Active Locks", "srvsvc.activelocks", FT_UINT32,
6300 BASE_DEC, NULL, 0x0, "Active Locks", HFILL}},
6301 { &hf_srvsvc_numfiletasks,
6302 { "Num Filetasks", "srvsvc.numfiletasks", FT_UINT32,
6303 BASE_DEC, NULL, 0x0, "Number of filetasks", HFILL}},
6304 { &hf_srvsvc_alertsched,
6305 { "Alert Sched", "srvsvc.alertsched", FT_UINT32,
6306 BASE_DEC, NULL, 0x0, "Alert Schedule", HFILL}},
6307 { &hf_srvsvc_erroralert,
6308 { "Error Alerts", "srvsvc.erroralert", FT_UINT32,
6309 BASE_DEC, NULL, 0x0, "Number of error alerts", HFILL}},
6310 { &hf_srvsvc_logonalert,
6311 { "Logon Alerts", "srvsvc.logonalert", FT_UINT32,
6312 BASE_DEC, NULL, 0x0, "Number of logon alerts", HFILL}},
6313 { &hf_srvsvc_accessalert,
6314 { "Access Alerts", "srvsvc.accessalert", FT_UINT32,
6315 BASE_DEC, NULL, 0x0, "Number of access alerts", HFILL}},
6316 { &hf_srvsvc_sizreqbufs,
6317 { "Siz Req Bufs", "srvsvc.sizreqbufs", FT_UINT32,
6318 BASE_DEC, NULL, 0x0, "", HFILL}},
6319 { &hf_srvsvc_numbigbufs,
6320 { "Num Big Bufs", "srvsvc.numbigbufs", FT_UINT32,
6321 BASE_DEC, NULL, 0x0, "Number of big buffers", HFILL}},
6322 { &hf_srvsvc_sessopens,
6323 { "Sessions Open", "srvsvc.sessopens", FT_UINT32,
6324 BASE_DEC, NULL, 0x0, "Sessions Open", HFILL}},
6325 { &hf_srvsvc_sessvcs,
6326 { "Sessions VCs", "srvsvc.sessvcs", FT_UINT32,
6327 BASE_DEC, NULL, 0x0, "Sessions VCs", HFILL}},
6328 { &hf_srvsvc_sessreqs,
6329 { "Sessions Reqs", "srvsvc.sessreqs", FT_UINT32,
6330 BASE_DEC, NULL, 0x0, "Sessions Requests", HFILL}},
6331 { &hf_srvsvc_auditedevents,
6332 { "Audited Events", "srvsvc.auditedevents", FT_UINT32,
6333 BASE_DEC, NULL, 0x0, "Number of audited events", HFILL}},
6334 { &hf_srvsvc_auditprofile,
6335 { "Audit Profile", "srvsvc.auditprofile", FT_UINT32,
6336 BASE_HEX, NULL, 0x0, "Audit Profile", HFILL}},
6337 { &hf_srvsvc_autopath,
6338 { "Autopath", "srvsvc.autopath", FT_STRING,
6339 BASE_DEC, NULL, 0x0, "Autopath", HFILL}},
6340 { &hf_srvsvc_security,
6341 { "Security", "srvsvc.security", FT_UINT32,
6342 BASE_HEX, NULL, 0x0, "Security", HFILL}},
6343 { &hf_srvsvc_numadmin,
6344 { "Num Admins", "srvsvc.num_admins", FT_UINT32,
6345 BASE_DEC, NULL, 0x0, "Number of Administrators", HFILL}},
6346 { &hf_srvsvc_lanmask,
6347 { "LANMask", "srvsvc.lanmask", FT_UINT32,
6348 BASE_HEX, NULL, 0x0, "LANMask", HFILL}},
6349 { &hf_srvsvc_chdevs,
6350 { "Char Devs", "srvsvc.chdevs", FT_UINT32,
6351 BASE_DEC, NULL, 0x0, "Number of Char Devices", HFILL}},
6352 { &hf_srvsvc_chdevqs,
6353 { "Char Devqs", "srvsvc.chdevqs", FT_UINT32,
6354 BASE_DEC, NULL, 0x0, "Number of Char Device Queues", HFILL}},
6355 { &hf_srvsvc_chdevjobs,
6356 { "Char Dev Jobs", "srvsvc.chdevjobs", FT_UINT32,
6357 BASE_DEC, NULL, 0x0, "Number of Char Device Jobs", HFILL}},
6358 { &hf_srvsvc_num_entries,
6359 { "Number of entries", "srvsvc.share.num_entries", FT_UINT32,
6360 BASE_DEC, NULL, 0x0, "Number of Entries", HFILL}},
6361 { &hf_srvsvc_initworkitems,
6362 { "Init Workitems", "srvsvc.initworkitems", FT_UINT32,
6363 BASE_DEC, NULL, 0x0, "Workitems", HFILL}},
6364 { &hf_srvsvc_maxworkitems,
6365 { "Max Workitems", "srvsvc.maxworkitems", FT_UINT32,
6366 BASE_DEC, NULL, 0x0, "Workitems", HFILL}},
6367 { &hf_srvsvc_rawworkitems,
6368 { "Raw Workitems", "srvsvc.rawworkitems", FT_UINT32,
6369 BASE_DEC, NULL, 0x0, "Workitems", HFILL}},
6370 { &hf_srvsvc_preferred_len,
6371 { "Preferred length", "srvsvc.preferred_len", FT_UINT32,
6372 BASE_DEC, NULL, 0x0, "Preferred Length", HFILL}},
6373 { &hf_srvsvc_parm_error,
6374 { "Parameter Error", "srvsvc.parm_error", FT_UINT32,
6375 BASE_DEC, NULL, 0x0, "Parameter Error", HFILL}},
6376 { &hf_srvsvc_enum_handle,
6377 { "Enumeration handle", "srvsvc.enum_hnd", FT_BYTES,
6378 BASE_HEX, NULL, 0x0, "Enumeration Handle", HFILL}},
6379 { &hf_srvsvc_irpstacksize,
6380 { "Irp Stack Size", "srvsvc.irpstacksize", FT_UINT32,
6381 BASE_HEX, NULL, 0x0, "Irp Stack Size", HFILL}},
6382 { &hf_srvsvc_maxrawbuflen,
6383 { "Max Raw Buf Len", "srvsvc.", FT_UINT32,
6384 BASE_HEX, NULL, 0x0, "Max Raw Buf Len", HFILL}},
6385 { &hf_srvsvc_maxpagedmemoryusage,
6386 { "Max Paged Memory Usage", "srvsvc.maxpagedmemoryusage", FT_UINT32,
6387 BASE_HEX, NULL, 0x0, "Max Paged Memory Usage", HFILL}},
6388 { &hf_srvsvc_maxnonpagedmemoryusage,
6389 { "Max Non-Paged Memory Usage", "srvsvc.maxnonpagedmemoryusage", FT_UINT32,
6390 BASE_HEX, NULL, 0x0, "Max Non-Paged Memory Usage", HFILL}},
6391 { &hf_srvsvc_enablesoftcompat,
6392 { "Enable Soft Compat", "srvsvc.enablesoftcompat", FT_UINT32,
6393 BASE_HEX, NULL, 0x0, "Enable Soft Compat", HFILL}},
6394 { &hf_srvsvc_enableforcedlogoff,
6395 { "Enable Forced Logoff", "srvsvc.enableforcedlogoff", FT_UINT32,
6396 BASE_HEX, NULL, 0x0, "Enable Forced Logoff", HFILL}},
6397 { &hf_srvsvc_timesource,
6398 { "Timesource", "srvsvc.timesource", FT_UINT32,
6399 BASE_HEX, NULL, 0x0, "Timesource", HFILL}},
6400 { &hf_srvsvc_acceptdownlevelapis,
6401 { "Accept Downlevel APIs", "srvsvc.acceptdownlevelapis", FT_UINT32,
6402 BASE_HEX, NULL, 0x0, "Accept Downlevel APIs", HFILL}},
6403 { &hf_srvsvc_lmannounce,
6404 { "LM Announce", "srvsvc.lmannounce", FT_UINT32,
6405 BASE_HEX, NULL, 0x0, "LM Announce", HFILL}},
6406 { &hf_srvsvc_domain,
6407 { "Domain", "srvsvc.domain", FT_STRING,
6408 BASE_HEX, NULL, 0x0, "Domain", HFILL}},
6409 { &hf_srvsvc_maxcopyreadlen,
6410 { "Max Copy Read Len", "srvsvc.maxcopyreadlen", FT_UINT32,
6411 BASE_DEC, NULL, 0x0, "Max Copy Read Len", HFILL}},
6412 { &hf_srvsvc_maxcopywritelen,
6413 { "Max Copy Write Len", "srvsvc.maxcopywritelen", FT_UINT32,
6414 BASE_DEC, NULL, 0x0, "Max Copy Write Len", HFILL}},
6415 { &hf_srvsvc_minkeepsearch,
6416 { "Min Keep Search", "srvsvc.minkeepsearch", FT_UINT32,
6417 BASE_DEC, NULL, 0x0, "Min Keep Search", HFILL}},
6418 { &hf_srvsvc_maxkeepsearch,
6419 { "Max Keep Search", "srvsvc.maxkeepsearch", FT_UINT32,
6420 BASE_DEC, NULL, 0x0, "Max Keep Search", HFILL}},
6421 { &hf_srvsvc_minkeepcomplsearch,
6422 { "Min Keep Compl Search", "srvsvc.minkeepcomplsearch", FT_UINT32,
6423 BASE_DEC, NULL, 0x0, "Min Keep Compl Search", HFILL}},
6424 { &hf_srvsvc_maxkeepcomplsearch,
6425 { "Max Keep Compl Search", "srvsvc.maxkeepcomplsearch", FT_UINT32,
6426 BASE_DEC, NULL, 0x0, "Max Keep Compl Search", HFILL}},
6427 { &hf_srvsvc_threadcountadd,
6428 { "Thread Count Add", "srvsvc.threadcountadd", FT_UINT32,
6429 BASE_DEC, NULL, 0x0, "Thread Count Add", HFILL}},
6430 { &hf_srvsvc_numblockthreads,
6431 { "Num Block Threads", "srvsvc.numblockthreads", FT_UINT32,
6432 BASE_DEC, NULL, 0x0, "Num Block Threads", HFILL}},
6433 { &hf_srvsvc_scavtimeout,
6434 { "Scav Timeout", "srvsvc.scavtimeout", FT_UINT32,
6435 BASE_DEC, NULL, 0x0, "Scav Timeout", HFILL}},
6436 { &hf_srvsvc_minrcvqueue,
6437 { "Min Rcv Queue", "srvsvc.minrcvqueue", FT_UINT32,
6438 BASE_DEC, NULL, 0x0, "Min Rcv Queue", HFILL}},
6439 { &hf_srvsvc_minfreeworkitems,
6440 { "Min Free Workitems", "srvsvc.minfreeworkitems", FT_UINT32,
6441 BASE_DEC, NULL, 0x0, "Min Free Workitems", HFILL}},
6442 { &hf_srvsvc_xactmemsize,
6443 { "Xact Mem Size", "srvsvc.xactmemsize", FT_UINT32,
6444 BASE_DEC, NULL, 0x0, "Xact Mem Size", HFILL}},
6445 { &hf_srvsvc_threadpriority,
6446 { "Thread Priority", "srvsvc.threadpriority", FT_UINT32,
6447 BASE_DEC, NULL, 0x0, "Thread Priority", HFILL}},
6448 { &hf_srvsvc_maxmpxct,
6449 { "MaxMpxCt", "srvsvc.maxmpxct", FT_UINT32,
6450 BASE_DEC, NULL, 0x0, "MaxMpxCt", HFILL}},
6451 { &hf_srvsvc_oplockbreakwait,
6452 { "Oplock Break Wait", "srvsvc.oplockbreakwait", FT_UINT32,
6453 BASE_DEC, NULL, 0x0, "Oplock Break Wait", HFILL}},
6454 { &hf_srvsvc_oplockbreakresponsewait,
6455 { "Oplock Break Response wait", "srvsvc.oplockbreakresponsewait", FT_UINT32,
6456 BASE_DEC, NULL, 0x0, "Oplock Break response Wait", HFILL}},
6457 { &hf_srvsvc_enableoplocks,
6458 { "Enable Oplocks", "srvsvc.enableoplocks", FT_UINT32,
6459 BASE_DEC, NULL, 0x0, "Enable Oplocks", HFILL}},
6460 { &hf_srvsvc_enableoplockforceclose,
6461 { "Enable Oplock Force Close", "srvsvc.enableoplockforceclose", FT_UINT32,
6462 BASE_DEC, NULL, 0x0, "Enable Oplock Force Close", HFILL}},
6463 { &hf_srvsvc_enablefcbopens,
6464 { "Enable FCB Opens", "srvsvc.enablefcbopens", FT_UINT32,
6465 BASE_DEC, NULL, 0x0, "Enable FCB Opens", HFILL}},
6466 { &hf_srvsvc_enableraw,
6467 { "Enable RAW", "srvsvc.enableraw", FT_UINT32,
6468 BASE_DEC, NULL, 0x0, "Enable RAW", HFILL}},
6469 { &hf_srvsvc_enablesharednetdrives,
6470 { "Enable Shared Net Drives", "srvsvc.enablesharednetdrives", FT_UINT32,
6471 BASE_DEC, NULL, 0x0, "Enable Shared Net Drives", HFILL}},
6472 { &hf_srvsvc_minfreeconnections,
6473 { "Min Free Conenctions", "srvsvc.minfreeconnections", FT_UINT32,
6474 BASE_DEC, NULL, 0x0, "Min Free Connections", HFILL}},
6475 { &hf_srvsvc_maxfreeconnections,
6476 { "Max Free Conenctions", "srvsvc.maxfreeconnections", FT_UINT32,
6477 BASE_DEC, NULL, 0x0, "Max Free Connections", HFILL}},
6478 { &hf_srvsvc_initsesstable,
6479 { "Init Session Table", "srvsvc.initsesstable", FT_UINT32,
6480 BASE_DEC, NULL, 0x0, "Init Session Table", HFILL}},
6481 { &hf_srvsvc_initconntable,
6482 { "Init Connection Table", "srvsvc.initconntable", FT_UINT32,
6483 BASE_DEC, NULL, 0x0, "Init Connection Table", HFILL}},
6484 { &hf_srvsvc_initfiletable,
6485 { "Init File Table", "srvsvc.initfiletable", FT_UINT32,
6486 BASE_DEC, NULL, 0x0, "Init File Table", HFILL}},
6487 { &hf_srvsvc_initsearchtable,
6488 { "Init Search Table", "srvsvc.initsearchtable", FT_UINT32,
6489 BASE_DEC, NULL, 0x0, "Init Search Table", HFILL}},
6490 { &hf_srvsvc_errortreshold,
6491 { "Error Treshold", "srvsvc.errortreshold", FT_UINT32,
6492 BASE_DEC, NULL, 0x0, "Error Treshold", HFILL}},
6493 { &hf_srvsvc_networkerrortreshold,
6494 { "Network Error Treshold", "srvsvc.networkerrortreshold", FT_UINT32,
6495 BASE_DEC, NULL, 0x0, "Network Error Treshold", HFILL}},
6496 { &hf_srvsvc_diskspacetreshold,
6497 { "Diskspace Treshold", "srvsvc.diskspacetreshold", FT_UINT32,
6498 BASE_DEC, NULL, 0x0, "Diskspace Treshold", HFILL}},
6499 { &hf_srvsvc_maxlinkdelay,
6500 { "Max Link Delay", "srvsvc.maxlinkdelay", FT_UINT32,
6501 BASE_DEC, NULL, 0x0, "Max Link Delay", HFILL}},
6502 { &hf_srvsvc_minlinkthroughput,
6503 { "Min Link Throughput", "srvsvc.minlinkthroughput", FT_UINT32,
6504 BASE_DEC, NULL, 0x0, "Min Link Throughput", HFILL}},
6505 { &hf_srvsvc_linkinfovalidtime,
6506 { "Link Info Valid Time", "srvsvc.linkinfovalidtime", FT_UINT32,
6507 BASE_DEC, NULL, 0x0, "Link Info Valid Time", HFILL}},
6508 { &hf_srvsvc_scavqosinfoupdatetime,
6509 { "Scav QoS Info Update Time", "srvsvc.scavqosinfoupdatetime", FT_UINT32,
6510 BASE_DEC, NULL, 0x0, "Scav QoS Info Update Time", HFILL}},
6511 { &hf_srvsvc_maxworkitemidletime,
6512 { "Max Workitem Idle Time", "srvsvc.maxworkitemidletime", FT_UINT32,
6513 BASE_DEC, NULL, 0x0, "Max Workitem Idle Time", HFILL}},
6514 { &hf_srvsvc_disk_name,
6515 { "Disk Name", "srvsvc.disk_name", FT_STRING,
6516 BASE_DEC, NULL, 0x0, "Disk Name", HFILL}},
6517 { &hf_srvsvc_disk_name_len,
6518 { "Disk Name Length", "srvsvc.disk_name_len", FT_UINT32,
6519 BASE_DEC, NULL, 0x0, "Length of Disk Name", HFILL}},
6520 { &hf_srvsvc_service,
6521 { "Service", "srvsvc.service", FT_STRING,
6522 BASE_DEC, NULL, 0x0, "Service", HFILL}},
6523 { &hf_srvsvc_service_options,
6524 { "Options", "srvsvc.service_options", FT_UINT32,
6525 BASE_HEX, NULL, 0x0, "Service Options", HFILL}},
6526 { &hf_srvsvc_transport_numberofvcs,
6527 { "VCs", "srvsvc.transport.num_vcs", FT_UINT32,
6528 BASE_DEC, NULL, 0x0, "Number of VCs for this transport", HFILL}},
6529 { &hf_srvsvc_transport_name,
6530 { "Name", "srvsvc.transport.name", FT_STRING,
6531 BASE_HEX, NULL, 0x0, "Name of transport", HFILL}},
6532 { &hf_srvsvc_transport_address,
6533 { "Address", "srvsvc.transport.address", FT_BYTES,
6534 BASE_HEX, NULL, 0x0, "Address of transport", HFILL}},
6535 { &hf_srvsvc_transport_address_len,
6536 { "Address Len", "srvsvc.transport.addresslen", FT_UINT32,
6537 BASE_DEC, NULL, 0x0, "Length of transport address", HFILL}},
6538 { &hf_srvsvc_transport_networkaddress,
6539 { "Network Address", "srvsvc.transport.networkaddress", FT_UINT32,
6540 BASE_HEX, NULL, 0x0, "Network address for transport", HFILL}},
6541 { &hf_srvsvc_service_bits,
6542 { "Service Bits", "srvsvc.service_bits", FT_UINT32,
6543 BASE_HEX, NULL, 0x0, "Service Bits", HFILL}},
6544 { &hf_srvsvc_service_bits_of_interest,
6545 { "Service Bits Of Interest", "srvsvc.service_bits_of_interest", FT_UINT32,
6546 BASE_HEX, NULL, 0x0, "Service Bits Of Interest", HFILL}},
6547 { &hf_srvsvc_update_immediately,
6548 { "Update Immediately", "srvsvc.update_immediately", FT_UINT32,
6549 BASE_DEC, NULL, 0x0, "Update Immediately", HFILL}},
6550 { &hf_srvsvc_path_flags,
6551 { "Flags", "srvsvc.path_flags", FT_UINT32,
6552 BASE_HEX, NULL, 0x0, "Path flags", HFILL}},
6553 { &hf_srvsvc_path_type,
6554 { "Type", "srvsvc.path_type", FT_UINT32,
6555 BASE_DEC, NULL, 0x0, "Path type", HFILL}},
6556 { &hf_srvsvc_outbuflen,
6557 { "OutBufLen", "srvsvc.outbuflen", FT_UINT32,
6558 BASE_DEC, NULL, 0x0, "Output Buffer Length", HFILL}},
6559 { &hf_srvsvc_prefix,
6560 { "Prefix", "srvsvc.prefix", FT_UINT32,
6561 BASE_HEX, NULL, 0x0, "Path Prefix", HFILL}},
6563 { "Context Handle", "srvsvc.hnd", FT_BYTES,
6564 BASE_NONE, NULL, 0x0, "Context Handle", HFILL}},
6567 static gint *ett[] = {
6569 &ett_srvsvc_share_info_1,
6570 &ett_srvsvc_share_info_2,
6571 &ett_srvsvc_share_info_502
6574 proto_dcerpc_srvsvc = proto_register_protocol(
6575 "Microsoft Server Service", "SRVSVC", "srvsvc");
6577 proto_register_field_array(proto_dcerpc_srvsvc, hf, array_length(hf));
6578 proto_register_subtree_array(ett, array_length(ett));
6582 proto_reg_handoff_dcerpc_srvsvc(void)
6584 /* Register protocol as dcerpc */
6586 dcerpc_init_uuid(proto_dcerpc_srvsvc, ett_dcerpc_srvsvc,
6587 &uuid_dcerpc_srvsvc, ver_dcerpc_srvsvc,
6588 dcerpc_srvsvc_dissectors);