Coverage for /root/GitHubProjects/impacket/impacket/dcerpc/v5/srvs.py : 98%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1# SECUREAUTH LABS. Copyright 2018 SecureAuth Corporation. All rights reserved.
2#
3# This software is provided under under a slightly modified version
4# of the Apache Software License. See the accompanying LICENSE file
5# for more information.
6#
7# Author: Alberto Solino (@agsolino)
8#
9# Description:
10# [MS-SRVS] Interface implementation
11#
12# Best way to learn how to use these calls is to grab the protocol standard
13# so you understand what the call does, and then read the test case located
14# at https://github.com/SecureAuthCorp/impacket/tree/master/tests/SMB_RPC
15#
16# Some calls have helper functions, which makes it even easier to use.
17# They are located at the end of this file.
18# Helper functions start with "h"<name of the call>.
19# There are test cases for them too.
20#
21from __future__ import division
22from __future__ import print_function
23from impacket.dcerpc.v5.rpcrt import DCERPCException
24from impacket.dcerpc.v5.ndr import NDRCALL, NDR, NDRSTRUCT, NDRUNION, NDRPOINTER, NDRUniConformantArray, \
25 NDRUniFixedArray, NDRBOOLEAN, NDRUniConformantVaryingArray, PNDRUniConformantArray
26from impacket.dcerpc.v5.dtypes import NULL, DWORD, LPWSTR, LPBYTE, LMSTR, ULONG, GUID, LPLONG, WSTR, \
27 SECURITY_INFORMATION, WCHAR
28from impacket import system_errors
29from impacket.uuid import uuidtup_to_bin
31MSRPC_UUID_SRVS = uuidtup_to_bin(('4B324FC8-1670-01D3-1278-5A47BF6EE188', '3.0'))
33class DCERPCSessionError(DCERPCException):
34 def __init__(self, error_string=None, error_code=None, packet=None):
35 DCERPCException.__init__(self, error_string, error_code, packet)
37 def __str__( self ):
38 key = self.error_code
39 if key in system_errors.ERROR_MESSAGES: 39 ↛ 44line 39 didn't jump to line 44, because the condition on line 39 was never false
40 error_msg_short = system_errors.ERROR_MESSAGES[key][0]
41 error_msg_verbose = system_errors.ERROR_MESSAGES[key][1]
42 return 'SRVS SessionError: code: 0x%x - %s - %s' % (self.error_code, error_msg_short, error_msg_verbose)
43 else:
44 return 'SRVS SessionError: unknown error code: 0x%x' % self.error_code
46################################################################################
47# CONSTANTS
48################################################################################
49# 2.2.1.1 SRVSVC_HANDLE
50SRVSVC_HANDLE = WCHAR
52class PSRVSVC_HANDLE(NDRPOINTER):
53 referent = (
54 ('Data', SRVSVC_HANDLE),
55 )
57# 2.2.1.2 SHARE_DEL_HANDLE
58class SHARE_DEL_HANDLE(NDRSTRUCT):
59 align = 1
60 structure = (
61 ('Data','20s=""'),
62 )
64# 2.2.1.3 PSHARE_DEL_HANDLE
65class PSHARE_DEL_HANDLE(NDRPOINTER):
66 referent = (
67 ('Data', SHARE_DEL_HANDLE),
68 )
70# 2.2.2.2 MAX_PREFERRED_LENGTH
71MAX_PREFERRED_LENGTH = -1
73# 2.2.2.3 Session User Flags
74SESS_GUEST = 0x00000001
75SESS_NOENCRYPTION = 0x00000002
77# 2.2.2.4 Share Types
78STYPE_DISKTREE = 0x00000000
79STYPE_PRINTQ = 0x00000001
80STYPE_DEVICE = 0x00000002
81STYPE_IPC = 0x00000003
82STYPE_CLUSTER_FS = 0x02000000
83STYPE_CLUSTER_SOFS = 0x04000000
84STYPE_CLUSTER_DFS = 0x08000000
86STYPE_SPECIAL = 0x80000000
87STYPE_TEMPORARY = 0x40000000
89# AND with shi_type to extract the Share Type part
90STYPE_MASK = 0x000000FF
92# 2.2.2.5 Client-Side Caching (CSC) States
93CSC_CACHE_MANUAL_REINT = 0x00
94CSC_CACHE_AUTO_REINT = 0x10
95CSC_CACHE_VDO = 0x20
96CSC_CACHE_NONE = 0x30
98# 2.2.2.6 Platform IDs
99PLATFORM_ID_DOS = 300
100PLATFORM_ID_OS2 = 400
101PLATFORM_ID_NT = 500
102PLATFORM_ID_OSF = 600
103PLATFORM_ID_VMS = 700
105# 2.2.2.7 Software Type Flags
106SV_TYPE_WORKSTATION = 0x00000001
107SV_TYPE_SERVER = 0x00000002
108SV_TYPE_SQLSERVER = 0x00000004
109SV_TYPE_DOMAIN_CTRL = 0x00000008
110SV_TYPE_DOMAIN_BAKCTRL = 0x00000010
111SV_TYPE_TIME_SOURCE = 0x00000020
112SV_TYPE_AFP = 0x00000040
113SV_TYPE_NOVELL = 0x00000080
114SV_TYPE_DOMAIN_MEMBER = 0x00000100
115SV_TYPE_LOCAL_LIST_ONLY = 0x40000000
116SV_TYPE_PRINTQ_SERVER = 0x00000200
117SV_TYPE_DIALIN_SERVER = 0x00000400
118SV_TYPE_XENIX_SERVER = 0x00000800
119SV_TYPE_SERVER_MFPN = 0x00004000
120SV_TYPE_NT = 0x00001000
121SV_TYPE_WFW = 0x00002000
122SV_TYPE_SERVER_NT = 0x00008000
123SV_TYPE_POTENTIAL_BROWSER = 0x00010000
124SV_TYPE_BACKUP_BROWSER = 0x00020000
125SV_TYPE_MASTER_BROWSER = 0x00040000
126SV_TYPE_DOMAIN_MASTER = 0x00080000
127SV_TYPE_DOMAIN_ENUM = 0x80000000
128SV_TYPE_WINDOWS = 0x00400000
129SV_TYPE_ALL = 0xFFFFFFFF
130SV_TYPE_TERMINALSERVER = 0x02000000
131SV_TYPE_CLUSTER_NT = 0x10000000
132SV_TYPE_CLUSTER_VS_NT = 0x04000000
134# 2.2.2.8 Name Types
135NAMETYPE_USER = 1
136NAMETYPE_PASSWORD = 2
137NAMETYPE_GROUP = 3
138NAMETYPE_COMPUTER = 4
139NAMETYPE_EVENT = 5
140NAMETYPE_DOMAIN = 6
141NAMETYPE_SERVICE = 7
142NAMETYPE_NET = 8
143NAMETYPE_SHARE = 9
144NAMETYPE_MESSAGE = 10
145NAMETYPE_MESSAGEDEST = 11
146NAMETYPE_SHAREPASSWORD = 12
147NAMETYPE_WORKGROUP = 13
149# 2.2.2.9 Path Types
150ITYPE_UNC_COMPNAME = 4144
151ITYPE_UNC_WC = 4145
152ITYPE_UNC = 4096
153ITYPE_UNC_WC_PATH = 4097
154ITYPE_UNC_SYS_SEM = 6400
155ITYPE_UNC_SYS_SHMEM = 6656
156ITYPE_UNC_SYS_MSLOT = 6144
157ITYPE_UNC_SYS_PIPE = 6912
158ITYPE_UNC_SYS_QUEUE = 7680
159ITYPE_PATH_ABSND = 8194
160ITYPE_PATH_ABSD = 8198
161ITYPE_PATH_RELND = 8192
162ITYPE_PATH_RELD = 8196
163ITYPE_PATH_ABSND_WC = 8195
164ITYPE_PATH_ABSD_WC = 8199
165ITYPE_PATH_RELND_WC = 8193
166ITYPE_PATH_RELD_WC = 8197
167ITYPE_PATH_SYS_SEM = 10498
168ITYPE_PATH_SYS_SHMEM = 10754
169ITYPE_PATH_SYS_MSLOT = 10242
170ITYPE_PATH_SYS_PIPE = 11010
171ITYPE_PATH_SYS_COMM = 11266
172ITYPE_PATH_SYS_PRINT = 11522
173ITYPE_PATH_SYS_QUEUE = 11778
174ITYPE_PATH_SYS_SEM_M = 43266
175ITYPE_PATH_SYS_SHMEM_M = 43522
176ITYPE_PATH_SYS_MSLOT_M = 43010
177ITYPE_PATH_SYS_PIPE_M = 43778
178ITYPE_PATH_SYS_COMM_M = 44034
179ITYPE_PATH_SYS_PRINT_M = 44290
180ITYPE_PATH_SYS_QUEUE_M = 44546
181ITYPE_DEVICE_DISK = 16384
182ITYPE_DEVICE_LPT = 16400
183ITYPE_DEVICE_COM = 16416
184ITYPE_DEVICE_CON = 16448
185ITYPE_DEVICE_NUL = 16464
187# 2.2.2.11 SHARE_INFO Parameter Error Codes
189SHARE_NETNAME_PARMNUM = 1
190SHARE_TYPE_PARMNUM = 3
191SHARE_REMARK_PARMNUM = 4
192SHARE_PERMISSIONS_PARMNUM = 5
193SHARE_MAX_USES_PARMNUM = 6
194SHARE_CURRENT_USES_PARMNUM = 7
195SHARE_PATH_PARMNUM = 8
196SHARE_PASSWD_PARMNUM = 9
197SHARE_FILE_SD_PARMNUM = 501
199# 2.2.2.12 SERVER_INFO Parameter Error Codes
200SV_PLATFORM_ID_PARMNUM = 101
201SV_NAME_PARMNUM = 102
202SV_VERSION_MAJOR_PARMNUM = 103
203SV_VERSION_MINOR_PARMNUM = 104
204SV_TYPE_PARMNUM = 105
205SV_COMMENT_PARMNUM = 5
206SV_USERS_PARMNUM = 107
207SV_DISC_PARMNUM = 10
208SV_HIDDEN_PARMNUM = 16
209SV_ANNOUNCE_PARMNUM = 17
210SV_ANNDELTA_PARMNUM = 18
211SV_USERPATH_PARMNUM = 112
212SV_SESSOPENS_PARMNUM = 501
213SV_SESSVCS_PARMNUM = 502
214SV_OPENSEARCH_PARMNUM = 503
215SV_SIZREQBUF_PARMNUM = 504
216SV_INITWORKITEMS_PARMNUM = 505
217SV_MAXWORKITEMS_PARMNUM = 506
218SV_RAWWORKITEMS_PARMNUM = 507
219SV_IRPSTACKSIZE_PARMNUM = 508
220SV_MAXRAWBUFLEN_PARMNUM = 509
221SV_SESSUSERS_PARMNUM = 510
222SV_SESSCONNS_PARMNUM = 511
223SV_MAXNONPAGEDMEMORYUSAGE_PARMNUM = 512
224SV_MAXPAGEDMEMORYUSAGE_PARMNUM = 513
225SV_ENABLESOFTCOMPAT_PARMNUM = 514
226SV_ENABLEFORCEDLOGOFF_PARMNUM = 515
227SV_TIMESOURCE_PARMNUM = 516
228SV_ACCEPTDOWNLEVELAPIS_PARMNUM = 517
229SV_LMANNOUNCE_PARMNUM = 518
230SV_DOMAIN_PARMNUM = 519
231SV_MAXCOPYREADLEN_PARMNUM = 520
232SV_MAXCOPYWRITELEN_PARMNUM = 521
233SV_MINKEEPSEARCH_PARMNUM = 522
234SV_MAXKEEPSEARCH_PARMNUM = 523
235SV_MINKEEPCOMPLSEARCH_PARMNUM = 524
236SV_MAXKEEPCOMPLSEARCH_PARMNUM = 525
237SV_THREADCOUNTADD_PARMNUM = 526
238SV_NUMBLOCKTHREADS_PARMNUM = 527
239SV_SCAVTIMEOUT_PARMNUM = 528
240SV_MINRCVQUEUE_PARMNUM = 529
241SV_MINFREEWORKITEMS_PARMNUM = 530
242SV_XACTMEMSIZE_PARMNUM = 531
243SV_THREADPRIORITY_PARMNUM = 532
244SV_MAXMPXCT_PARMNUM = 533
245SV_OPLOCKBREAKWAIT_PARMNUM = 534
246SV_OPLOCKBREAKRESPONSEWAIT_PARMNUM = 535
247SV_ENABLEOPLOCKS_PARMNUM = 536
248SV_ENABLEOPLOCKFORCECLOSE_PARMNUM = 537
249SV_ENABLEFCBOPENS_PARMNUM = 538
250SV_ENABLERAW_PARMNUM = 539
251SV_ENABLESHAREDNETDRIVES_PARMNUM = 540
252SV_MINFREECONNECTIONS_PARMNUM = 541
253SV_MAXFREECONNECTIONS_PARMNUM = 542
254SV_INITSESSTABLE_PARMNUM = 543
255SV_INITCONNTABLE_PARMNUM = 544
256SV_INITFILETABLE_PARMNUM = 545
257SV_INITSEARCHTABLE_PARMNUM = 546
258SV_ALERTSCHEDULE_PARMNUM = 547
259SV_ERRORTHRESHOLD_PARMNUM = 548
260SV_NETWORKERRORTHRESHOLD_PARMNUM = 549
261SV_DISKSPACETHRESHOLD_PARMNUM = 550
262SV_MAXLINKDELAY_PARMNUM = 552
263SV_MINLINKTHROUGHPUT_PARMNUM = 553
264SV_LINKINFOVALIDTIME_PARMNUM = 554
265SV_SCAVQOSINFOUPDATETIME_PARMNUM = 555
266SV_MAXWORKITEMIDLETIME_PARMNUM = 556
268# 2.2.2.13 DFS Entry Flags
269PKT_ENTRY_TYPE_CAIRO = 0x0001
270PKT_ENTRY_TYPE_MACHINE = 0x0002
271PKT_ENTRY_TYPE_NONCAIRO = 0x0004
272PKT_ENTRY_TYPE_LEAFONLY = 0x0008
273PKT_ENTRY_TYPE_OUTSIDE_MY_DOM = 0x0010
274PKT_ENTRY_TYPE_INSITE_ONLY = 0x0020
275PKT_ENTRY_TYPE_REFERRAL_SVC = 0x0080
276PKT_ENTRY_TYPE_PERMANENT = 0x0100
277PKT_ENTRY_TYPE_LOCAL = 0x0400
278PKT_ENTRY_TYPE_LOCAL_XPOINT = 0x0800
279PKT_ENTRY_TYPE_MACH_SHARE = 0x1000
280PKT_ENTRY_TYPE_OFFLINE = 0x2000
282# 2.2.4.7 FILE_INFO_3
283# fi3_permissions
284PERM_FILE_READ = 0x00000001
285PERM_FILE_WRITE = 0x00000002
286PERM_FILE_CREATE = 0x00000004
287ACCESS_EXEC = 0x00000008
288ACCESS_DELETE = 0x00000010
289ACCESS_ATRIB = 0x00000020
290ACCESS_PERM = 0x00000040
292# 2.2.4.29 SHARE_INFO_1005
293# shi1005_flags
294SHI1005_FLAGS_DFS = 0x00000001
295SHI1005_FLAGS_DFS_ROOT = 0x00000002
296CSC_MASK = 0x00000030
297SHI1005_FLAGS_RESTRICT_EXCLUSIVE_OPENS = 0x00000100
298SHI1005_FLAGS_FORCE_SHARED_DELETE = 0x00000200
299SHI1005_FLAGS_ALLOW_NAMESPACE_CACHING = 0x00000400
300SHI1005_FLAGS_ACCESS_BASED_DIRECTORY_ENUM = 0x00000800
301SHI1005_FLAGS_FORCE_LEVELII_OPLOCK = 0x00001000
302SHI1005_FLAGS_ENABLE_HASH = 0x00002000
303SHI1005_FLAGS_ENABLE_CA = 0x00004000
304SHI1005_FLAGS_ENCRYPT_DATA = 0x00008000
306# 2.2.4.43 SERVER_INFO_103
307# sv103_capabilities
308SRV_SUPPORT_HASH_GENERATION = 0x0001
309SRV_HASH_GENERATION_ACTIVE = 0x0002
311# 2.2.4.96 SERVER_TRANSPORT_INFO_3
312# svti3_flags
313SVTI2_REMAP_PIPE_NAMES = 0x00000002
314SVTI2_SCOPED_NAME = 0x00000004
316# 2.2.4.109 DFS_SITENAME_INFO
317# SiteFlags
318DFS_SITE_PRIMARY = 0x00000001
320# 3.1.4.42 NetrDfsFixLocalVolume (Opnum 51)
321# ServiceType
322DFS_SERVICE_TYPE_MASTER = 0x00000001
323DFS_SERVICE_TYPE_READONLY = 0x00000002
324DFS_SERVICE_TYPE_LOCAL = 0x00000004
325DFS_SERVICE_TYPE_REFERRAL = 0x00000008
326DFS_SERVICE_TYPE_ACTIVE = 0x000000010
327DFS_SERVICE_TYPE_DOWN_LEVEL = 0x000000020
328DFS_SERVICE_TYPE_COSTLIER = 0x000000040
329DFS_SERVICE_TYPE_OFFLINE = 0x000000080
331# CreateDisposition
332FILE_SUPERSEDE = 0x00000000
333FILE_OPEN = 0x00000001
334FILE_CREATE = 0x00000002
336################################################################################
337# STRUCTURES
338################################################################################
339# 2.2.4.1 CONNECTION_INFO_0
340class CONNECTION_INFO_0(NDRSTRUCT):
341 structure = (
342 ('coni0_id', DWORD),
343 )
345class CONNECTION_INFO_0_ARRAY(NDRUniConformantArray):
346 item = CONNECTION_INFO_0
348class LPCONNECTION_INFO_0_ARRAY(NDRPOINTER):
349 referent = (
350 ('Data', CONNECTION_INFO_0_ARRAY),
351 )
353# 2.2.4.2 CONNECTION_INFO_1
354class CONNECTION_INFO_1(NDRSTRUCT):
355 structure = (
356 ('coni1_id', DWORD),
357 ('coni1_type', DWORD),
358 ('coni1_num_opens', DWORD),
359 ('coni1_num_users', DWORD),
360 ('coni1_time', DWORD),
361 ('coni1_username', LPWSTR),
362 ('coni1_netname', LPWSTR),
363 )
365class CONNECTION_INFO_1_ARRAY(NDRUniConformantArray):
366 item = CONNECTION_INFO_1
368class LPCONNECTION_INFO_1_ARRAY(NDRPOINTER):
369 referent = (
370 ('Data', CONNECTION_INFO_1_ARRAY),
371 )
373# 2.2.4.3 CONNECT_INFO_0_CONTAINER
374class CONNECT_INFO_0_CONTAINER(NDRSTRUCT):
375 structure = (
376 ('EntriesRead', DWORD),
377 ('Buffer', LPCONNECTION_INFO_0_ARRAY),
378 )
380class LPCONNECT_INFO_0_CONTAINER(NDRPOINTER):
381 referent = (
382 ('Data', CONNECT_INFO_0_CONTAINER),
383 )
385# 2.2.4.4 CONNECT_INFO_1_CONTAINER
386class CONNECT_INFO_1_CONTAINER(NDRSTRUCT):
387 structure = (
388 ('EntriesRead', DWORD),
389 ('Buffer', LPCONNECTION_INFO_1_ARRAY),
390 )
392class LPCONNECT_INFO_1_CONTAINER(NDRPOINTER):
393 referent = (
394 ('Data', CONNECT_INFO_1_CONTAINER),
395 )
397# 2.2.3.1 CONNECT_ENUM_UNION
398class CONNECT_ENUM_UNION(NDRUNION):
399 commonHdr = (
400 ('tag', DWORD),
401 )
403 union = {
404 0: ('Level0', LPCONNECT_INFO_0_CONTAINER),
405 1: ('Level1', LPCONNECT_INFO_1_CONTAINER),
406 }
408# 2.2.4.5 CONNECT_ENUM_STRUCT
409class CONNECT_ENUM_STRUCT(NDRSTRUCT):
410 structure = (
411 ('Level', DWORD),
412 ('ConnectInfo', CONNECT_ENUM_UNION),
413 )
415# 2.2.4.6 FILE_INFO_2
416class FILE_INFO_2(NDRSTRUCT):
417 structure = (
418 ('fi2_id', DWORD),
419 )
421class LPFILE_INFO_2(NDRPOINTER):
422 referent = (
423 ('Data', FILE_INFO_2),
424 )
426class FILE_INFO_2_ARRAY(NDRUniConformantArray):
427 item = FILE_INFO_2
429class LPFILE_INFO_2_ARRAY(NDRPOINTER):
430 referent = (
431 ('Data', FILE_INFO_2_ARRAY),
432 )
434# 2.2.4.7 FILE_INFO_3
435class FILE_INFO_3(NDRSTRUCT):
436 structure = (
437 ('fi3_id', DWORD),
438 ('fi3_permissions', DWORD),
439 ('fi3_num_locks', DWORD),
440 ('fi3_path_name', LPWSTR),
441 ('fi3_username', LPWSTR),
442 )
444class LPFILE_INFO_3(NDRPOINTER):
445 referent = (
446 ('Data', FILE_INFO_3),
447 )
449class FILE_INFO_3_ARRAY(NDRUniConformantArray):
450 item = FILE_INFO_3
452class LPFILE_INFO_3_ARRAY(NDRPOINTER):
453 referent = (
454 ('Data', FILE_INFO_3_ARRAY),
455 )
457# 2.2.4.8 FILE_INFO_2_CONTAINER
458class FILE_INFO_2_CONTAINER(NDRSTRUCT):
459 structure = (
460 ('EntriesRead', DWORD),
461 ('Buffer', LPFILE_INFO_2_ARRAY),
462 )
464class LPFILE_INFO_2_CONTAINER(NDRPOINTER):
465 referent = (
466 ('Data', FILE_INFO_2_CONTAINER),
467 )
469# 2.2.4.9 FILE_INFO_3_CONTAINER
470class FILE_INFO_3_CONTAINER(NDRSTRUCT):
471 structure = (
472 ('EntriesRead', DWORD),
473 ('Buffer', LPFILE_INFO_3_ARRAY),
474 )
476class LPFILE_INFO_3_CONTAINER(NDRPOINTER):
477 referent = (
478 ('Data', FILE_INFO_3_CONTAINER),
479 )
481# 2.2.3.2 FILE_ENUM_UNION
482class FILE_ENUM_UNION(NDRUNION):
483 commonHdr = (
484 ('tag', DWORD),
485 )
487 union = {
488 2: ('Level2', LPFILE_INFO_2_CONTAINER),
489 3: ('Level3', LPFILE_INFO_3_CONTAINER),
490 }
492# 2.2.4.10 FILE_ENUM_STRUCT
493class FILE_ENUM_STRUCT(NDRSTRUCT):
494 structure = (
495 ('Level', DWORD),
496 ('FileInfo', FILE_ENUM_UNION),
497 )
499# 2.2.4.11 SESSION_INFO_0
500class SESSION_INFO_0(NDRSTRUCT):
501 structure = (
502 ('sesi0_cname', LPWSTR),
503 )
505class LPSESSION_INFO_0(NDRPOINTER):
506 referent = (
507 ('Data', SESSION_INFO_0),
508 )
510class SESSION_INFO_0_ARRAY(NDRUniConformantArray):
511 item = SESSION_INFO_0
513class LPSESSION_INFO_0_ARRAY(NDRPOINTER):
514 referent = (
515 ('Data', SESSION_INFO_0_ARRAY),
516 )
518# 2.2.4.12 SESSION_INFO_1
519class SESSION_INFO_1(NDRSTRUCT):
520 structure = (
521 ('sesi1_cname', LPWSTR),
522 ('sesi1_username', LPWSTR),
523 ('sesi1_num_opens', DWORD),
524 ('sesi1_time', DWORD),
525 ('sesi1_idle_time', DWORD),
526 ('sesi1_user_flags', DWORD),
527 )
529class LPSESSION_INFO_1(NDRPOINTER):
530 referent = (
531 ('Data', SESSION_INFO_1),
532 )
534class SESSION_INFO_1_ARRAY(NDRUniConformantArray):
535 item = SESSION_INFO_1
537class LPSESSION_INFO_1_ARRAY(NDRPOINTER):
538 referent = (
539 ('Data', SESSION_INFO_1_ARRAY),
540 )
542# 2.2.4.13 SESSION_INFO_2
543class SESSION_INFO_2(NDRSTRUCT):
544 structure = (
545 ('sesi2_cname', LPWSTR),
546 ('sesi2_username', LPWSTR),
547 ('sesi2_num_opens', DWORD),
548 ('sesi2_time', DWORD),
549 ('sesi2_idle_time', DWORD),
550 ('sesi2_user_flags', DWORD),
551 ('sesi2_cltype_name', LPWSTR),
552 )
554class LPSESSION_INFO_2(NDRPOINTER):
555 referent = (
556 ('Data', SESSION_INFO_2),
557 )
559class SESSION_INFO_2_ARRAY(NDRUniConformantArray):
560 item = SESSION_INFO_2
562class LPSESSION_INFO_2_ARRAY(NDRPOINTER):
563 referent = (
564 ('Data', SESSION_INFO_2_ARRAY),
565 )
567# 2.2.4.14 SESSION_INFO_10
568class SESSION_INFO_10(NDRSTRUCT):
569 structure = (
570 ('sesi10_cname', LPWSTR),
571 ('sesi10_username', LPWSTR),
572 ('sesi10_time', DWORD),
573 ('sesi10_idle_time', DWORD),
574 )
576class LPSESSION_INFO_10(NDRPOINTER):
577 referent = (
578 ('Data', SESSION_INFO_10),
579 )
581class SESSION_INFO_10_ARRAY(NDRUniConformantArray):
582 item = SESSION_INFO_10
584class LPSESSION_INFO_10_ARRAY(NDRPOINTER):
585 referent = (
586 ('Data', SESSION_INFO_10_ARRAY),
587 )
589# 2.2.4.15 SESSION_INFO_502
590class SESSION_INFO_502(NDRSTRUCT):
591 structure = (
592 ('sesi502_cname', LPWSTR),
593 ('sesi502_username', LPWSTR),
594 ('sesi502_num_opens', DWORD),
595 ('sesi502_time', DWORD),
596 ('sesi502_idle_time', DWORD),
597 ('sesi502_user_flags', DWORD),
598 ('sesi502_cltype_name', LPWSTR),
599 ('sesi502_transport', LPWSTR),
600 )
602class LPSESSION_INFO_502(NDRPOINTER):
603 referent = (
604 ('Data', SESSION_INFO_502),
605 )
607class SESSION_INFO_502_ARRAY(NDRUniConformantArray):
608 item = SESSION_INFO_502
610class LPSESSION_INFO_502_ARRAY(NDRPOINTER):
611 referent = (
612 ('Data', SESSION_INFO_502_ARRAY),
613 )
615# 2.2.4.16 SESSION_INFO_0_CONTAINER
616class SESSION_INFO_0_CONTAINER(NDRSTRUCT):
617 structure = (
618 ('EntriesRead', DWORD),
619 ('Buffer', LPSESSION_INFO_0_ARRAY),
620 )
622class LPSESSION_INFO_0_CONTAINER(NDRPOINTER):
623 referent = (
624 ('Data', SESSION_INFO_0_CONTAINER),
625 )
627# 2.2.4.17 SESSION_INFO_1_CONTAINER
628class SESSION_INFO_1_CONTAINER(NDRSTRUCT):
629 structure = (
630 ('EntriesRead', DWORD),
631 ('Buffer', LPSESSION_INFO_1_ARRAY),
632 )
634class LPSESSION_INFO_1_CONTAINER(NDRPOINTER):
635 referent = (
636 ('Data', SESSION_INFO_1_CONTAINER),
637 )
639# 2.2.4.18 SESSION_INFO_2_CONTAINER
640class SESSION_INFO_2_CONTAINER(NDRSTRUCT):
641 structure = (
642 ('EntriesRead', DWORD),
643 ('Buffer', LPSESSION_INFO_2_ARRAY),
644 )
646class LPSESSION_INFO_2_CONTAINER(NDRPOINTER):
647 referent = (
648 ('Data', SESSION_INFO_2_CONTAINER),
649 )
651# 2.2.4.19 SESSION_INFO_10_CONTAINER
652class SESSION_INFO_10_CONTAINER(NDRSTRUCT):
653 structure = (
654 ('EntriesRead', DWORD),
655 ('Buffer', LPSESSION_INFO_10_ARRAY),
656 )
658class LPSESSION_INFO_10_CONTAINER(NDRPOINTER):
659 referent = (
660 ('Data', SESSION_INFO_10_CONTAINER),
661 )
663# 2.2.4.20 SESSION_INFO_502_CONTAINER
664class SESSION_INFO_502_CONTAINER(NDRSTRUCT):
665 structure = (
666 ('EntriesRead', DWORD),
667 ('Buffer', LPSESSION_INFO_502_ARRAY),
668 )
670class LPSESSION_INFO_502_CONTAINER(NDRPOINTER):
671 referent = (
672 ('Data', SESSION_INFO_502_CONTAINER),
673 )
675# 2.2.3.4 SESSION_ENUM_UNION
676class SESSION_ENUM_UNION(NDRUNION):
677 commonHdr = (
678 ('tag', DWORD),
679 )
681 union = {
682 0: ('Level0', LPSESSION_INFO_0_CONTAINER),
683 1: ('Level1', LPSESSION_INFO_1_CONTAINER),
684 2: ('Level2', LPSESSION_INFO_2_CONTAINER),
685 10: ('Level10', LPSESSION_INFO_10_CONTAINER),
686 502: ('Level502', LPSESSION_INFO_502_CONTAINER),
687 }
689# 2.2.4.21 SESSION_ENUM_STRUCT
690class SESSION_ENUM_STRUCT(NDRSTRUCT):
691 structure = (
692 ('Level', DWORD),
693 ('SessionInfo', SESSION_ENUM_UNION),
694 )
696# 2.2.4.22 SHARE_INFO_0
697class SHARE_INFO_0(NDRSTRUCT):
698 structure = (
699 ('shi0_netname', LPWSTR),
700 )
702class LPSHARE_INFO_0(NDRPOINTER):
703 referent = (
704 ('Data', SHARE_INFO_0),
705 )
707class SHARE_INFO_0_ARRAY(NDRUniConformantArray):
708 item = SHARE_INFO_0
710class LPSHARE_INFO_0_ARRAY(NDRPOINTER):
711 referent = (
712 ('Data', SHARE_INFO_0_ARRAY),
713 )
715# 2.2.4.23 SHARE_INFO_1
716class SHARE_INFO_1(NDRSTRUCT):
717 structure = (
718 ('shi1_netname', LPWSTR),
719 ('shi1_type', DWORD),
720 ('shi1_remark', LPWSTR),
721 )
723class LPSHARE_INFO_1(NDRPOINTER):
724 referent = (
725 ('Data', SHARE_INFO_1),
726 )
728class SHARE_INFO_1_ARRAY(NDRUniConformantArray):
729 item = SHARE_INFO_1
731class LPSHARE_INFO_1_ARRAY(NDRPOINTER):
732 referent = (
733 ('Data', SHARE_INFO_1_ARRAY),
734 )
736# 2.2.4.24 SHARE_INFO_2
737class SHARE_INFO_2(NDRSTRUCT):
738 structure = (
739 ('shi2_netname', LPWSTR),
740 ('shi2_type', DWORD),
741 ('shi2_remark', LPWSTR),
742 ('shi2_permissions', DWORD),
743 ('shi2_max_uses', DWORD),
744 ('shi2_current_uses', DWORD),
745 ('shi2_path', LPWSTR),
746 ('shi2_passwd', LPWSTR),
747 )
749class LPSHARE_INFO_2(NDRPOINTER):
750 referent = (
751 ('Data', SHARE_INFO_2),
752 )
754class SHARE_INFO_2_ARRAY(NDRUniConformantArray):
755 item = SHARE_INFO_2
757class LPSHARE_INFO_2_ARRAY(NDRPOINTER):
758 referent = (
759 ('Data', SHARE_INFO_2_ARRAY),
760 )
762# 2.2.4.25 SHARE_INFO_501
763class SHARE_INFO_501(NDRSTRUCT):
764 structure = (
765 ('shi501_netname', LPWSTR),
766 ('shi501_type', DWORD),
767 ('shi501_remark', LPWSTR),
768 ('shi501_flags', DWORD),
769 )
771class LPSHARE_INFO_501(NDRPOINTER):
772 referent = (
773 ('Data', SHARE_INFO_501),
774 )
776class SHARE_INFO_501_ARRAY(NDRUniConformantArray):
777 item = SHARE_INFO_501
779class LPSHARE_INFO_501_ARRAY(NDRPOINTER):
780 referent = (
781 ('Data', SHARE_INFO_501_ARRAY),
782 )
784# 2.2.4.26 SHARE_INFO_502_I
785class SHARE_INFO_502(NDRSTRUCT):
786 structure = (
787 ('shi502_netname', LPWSTR),
788 ('shi502_type', DWORD),
789 ('shi502_remark', LPWSTR),
790 ('shi502_permissions', DWORD),
791 ('shi502_max_uses', DWORD),
792 ('shi502_current_uses', DWORD),
793 ('shi502_path', LPWSTR),
794 ('shi502_passwd', LPWSTR),
795 ('shi502_reserved', DWORD),
796 ('shi502_security_descriptor', LPBYTE),
797 )
799class LPSHARE_INFO_502(NDRPOINTER):
800 referent = (
801 ('Data', SHARE_INFO_502),
802 )
804class SHARE_INFO_502_ARRAY(NDRUniConformantArray):
805 item = SHARE_INFO_502
807class LPSHARE_INFO_502_ARRAY(NDRPOINTER):
808 referent = (
809 ('Data', SHARE_INFO_502_ARRAY),
810 )
812# 2.2.4.27 SHARE_INFO_503_I
813class SHARE_INFO_503(NDRSTRUCT):
814 structure = (
815 ('shi503_netname', LPWSTR),
816 ('shi503_type', DWORD),
817 ('shi503_remark', LPWSTR),
818 ('shi503_permissions', DWORD),
819 ('shi503_max_uses', DWORD),
820 ('shi503_current_uses', DWORD),
821 ('shi503_path', LPWSTR),
822 ('shi503_passwd', LPWSTR),
823 ('shi503_servername', LPWSTR),
824 ('shi503_reserved', DWORD),
825 ('shi503_security_descriptor', LPBYTE),
826 )
828class LPSHARE_INFO_503(NDRPOINTER):
829 referent = (
830 ('Data', SHARE_INFO_503),
831 )
833class SHARE_INFO_503_ARRAY(NDRUniConformantArray):
834 item = SHARE_INFO_503
836class LPSHARE_INFO_503_ARRAY(NDRPOINTER):
837 referent = (
838 ('Data', SHARE_INFO_503_ARRAY),
839 )
841# 2.2.4.28 SHARE_INFO_1004
842class SHARE_INFO_1004(NDRSTRUCT):
843 structure = (
844 ('shi1004_remark', LPWSTR),
845 )
847class LPSHARE_INFO_1004(NDRPOINTER):
848 referent = (
849 ('Data', SHARE_INFO_1004),
850 )
852class SHARE_INFO_1004_ARRAY(NDRUniConformantArray):
853 item = SHARE_INFO_1004
855class LPSHARE_INFO_1004_ARRAY(NDRPOINTER):
856 referent = (
857 ('Data', SHARE_INFO_1004_ARRAY),
858 )
860# 2.2.4.29 SHARE_INFO_1005
861class SHARE_INFO_1005(NDRSTRUCT):
862 structure = (
863 ('shi1005_flags', DWORD),
864 )
866class LPSHARE_INFO_1005(NDRPOINTER):
867 referent = (
868 ('Data', SHARE_INFO_1005),
869 )
871class SHARE_INFO_1005_ARRAY(NDRUniConformantArray):
872 item = SHARE_INFO_1004
874class LPSHARE_INFO_1005_ARRAY(NDRPOINTER):
875 referent = (
876 ('Data', SHARE_INFO_1005_ARRAY),
877 )
879# 2.2.4.30 SHARE_INFO_1006
880class SHARE_INFO_1006(NDRSTRUCT):
881 structure = (
882 ('shi1006_max_uses', DWORD),
883 )
885class LPSHARE_INFO_1006(NDRPOINTER):
886 referent = (
887 ('Data', SHARE_INFO_1006),
888 )
890class SHARE_INFO_1006_ARRAY(NDRUniConformantArray):
891 item = SHARE_INFO_1006
893class LPSHARE_INFO_1006_ARRAY(NDRPOINTER):
894 referent = (
895 ('Data', SHARE_INFO_1006_ARRAY),
896 )
898# 2.2.4.31 SHARE_INFO_1501_I
899class SHARE_INFO_1501(NDRSTRUCT):
900 structure = (
901 ('shi1501_reserved', DWORD),
902 ('shi1501_security_descriptor', NDRUniConformantArray),
903 )
905class LPSHARE_INFO_1501(NDRPOINTER):
906 referent = (
907 ('Data', SHARE_INFO_1501),
908 )
910class SHARE_INFO_1501_ARRAY(NDRUniConformantArray):
911 item = SHARE_INFO_1501
913class LPSHARE_INFO_1501_ARRAY(NDRPOINTER):
914 referent = (
915 ('Data', SHARE_INFO_1501_ARRAY),
916 )
918# 2.2.4.32 SHARE_INFO_0_CONTAINER
919class SHARE_INFO_0_CONTAINER(NDRSTRUCT):
920 structure = (
921 ('EntriesRead', DWORD),
922 ('Buffer', LPSHARE_INFO_0_ARRAY),
923 )
925class LPSHARE_INFO_0_CONTAINER(NDRPOINTER):
926 referent = (
927 ('Data', SHARE_INFO_0_CONTAINER),
928 )
930# 2.2.4.33 SHARE_INFO_1_CONTAINER
931class SHARE_INFO_1_CONTAINER(NDRSTRUCT):
932 structure = (
933 ('EntriesRead', DWORD),
934 ('Buffer', LPSHARE_INFO_1_ARRAY),
935 )
937class LPSHARE_INFO_1_CONTAINER(NDRPOINTER):
938 referent = (
939 ('Data', SHARE_INFO_1_CONTAINER),
940 )
942# 2.2.4.34 SHARE_INFO_2_CONTAINER
943class SHARE_INFO_2_CONTAINER(NDRSTRUCT):
944 structure = (
945 ('EntriesRead', DWORD),
946 ('Buffer', LPSHARE_INFO_2_ARRAY),
947 )
949class LPSHARE_INFO_2_CONTAINER(NDRPOINTER):
950 referent = (
951 ('Data', SHARE_INFO_2_CONTAINER),
952 )
954# 2.2.4.35 SHARE_INFO_501_CONTAINER
955class SHARE_INFO_501_CONTAINER(NDRSTRUCT):
956 structure = (
957 ('EntriesRead', DWORD),
958 ('Buffer', LPSHARE_INFO_501_ARRAY),
959 )
961class LPSHARE_INFO_501_CONTAINER(NDRPOINTER):
962 referent = (
963 ('Data', SHARE_INFO_501_CONTAINER),
964 )
966# 2.2.4.36 SHARE_INFO_502_CONTAINER
967class SHARE_INFO_502_CONTAINER(NDRSTRUCT):
968 structure = (
969 ('EntriesRead', DWORD),
970 ('Buffer', LPSHARE_INFO_502_ARRAY),
971 )
973class LPSHARE_INFO_502_CONTAINER(NDRPOINTER):
974 referent = (
975 ('Data', SHARE_INFO_502_CONTAINER),
976 )
978# 2.2.4.37 SHARE_INFO_503_CONTAINER
979class SHARE_INFO_503_CONTAINER(NDRSTRUCT):
980 structure = (
981 ('EntriesRead', DWORD),
982 ('Buffer', LPSHARE_INFO_503_ARRAY),
983 )
985class LPSHARE_INFO_503_CONTAINER(NDRPOINTER):
986 referent = (
987 ('Data', SHARE_INFO_503_CONTAINER),
988 )
990# 2.2.3.5 SHARE_ENUM_UNION
991class SHARE_ENUM_UNION(NDRUNION):
992 commonHdr = (
993 ('tag', DWORD),
994 )
996 union = {
997 0: ('Level0', LPSHARE_INFO_0_CONTAINER),
998 1: ('Level1', LPSHARE_INFO_1_CONTAINER),
999 2: ('Level2', LPSHARE_INFO_2_CONTAINER),
1000 501: ('Level501', LPSHARE_INFO_501_CONTAINER),
1001 502: ('Level502', LPSHARE_INFO_502_CONTAINER),
1002 503: ('Level503', LPSHARE_INFO_503_CONTAINER),
1003 }
1005# 2.2.4.38 SHARE_ENUM_STRUCT
1006class SHARE_ENUM_STRUCT(NDRSTRUCT):
1007 structure = (
1008 ('Level', DWORD),
1009 ('ShareInfo', SHARE_ENUM_UNION),
1010 )
1012# 2.2.4.39 STAT_SERVER_0
1013class STAT_SERVER_0(NDRSTRUCT):
1014 structure = (
1015 ('sts0_start', DWORD),
1016 ('sts0_fopens', DWORD),
1017 ('sts0_devopens', DWORD),
1018 ('sts0_jobsqueued', DWORD),
1019 ('sts0_sopens', DWORD),
1020 ('sts0_stimedout', DWORD),
1021 ('sts0_serrorout', DWORD),
1022 ('sts0_pwerrors', DWORD),
1023 ('sts0_permerrors', DWORD),
1024 ('sts0_syserrors', DWORD),
1025 ('sts0_bytessent_low', DWORD),
1026 ('sts0_bytessent_high', DWORD),
1027 ('sts0_bytesrcvd_low', DWORD),
1028 ('sts0_bytesrcvd_high', DWORD),
1029 ('sts0_avresponse', DWORD),
1030 ('sts0_reqbufneed', DWORD),
1031 ('sts0_bigbufneed', DWORD),
1032 )
1034class LPSTAT_SERVER_0(NDRPOINTER):
1035 referent = (
1036 ('Data', STAT_SERVER_0),
1037 )
1039# 2.2.4.40 SERVER_INFO_100
1040class SERVER_INFO_100(NDRSTRUCT):
1041 structure = (
1042 ('sv100_platform_id', DWORD),
1043 ('sv100_name', LPWSTR),
1044 )
1046class LPSERVER_INFO_100(NDRPOINTER):
1047 referent = (
1048 ('Data', SERVER_INFO_100),
1049 )
1051# 2.2.4.41 SERVER_INFO_101
1052class SERVER_INFO_101(NDRSTRUCT):
1053 structure = (
1054 ('sv101_platform_id', DWORD),
1055 ('sv101_name', LPWSTR),
1056 ('sv101_version_major', DWORD),
1057 ('sv101_version_minor', DWORD),
1058 ('sv101_type', DWORD),
1059 ('sv101_comment', LPWSTR),
1060 )
1062class LPSERVER_INFO_101(NDRPOINTER):
1063 referent = (
1064 ('Data', SERVER_INFO_101),
1065 )
1067# 2.2.4.42 SERVER_INFO_102
1068class SERVER_INFO_102(NDRSTRUCT):
1069 structure = (
1070 ('sv102_platform_id', DWORD),
1071 ('sv102_name', LPWSTR),
1072 ('sv102_version_major', DWORD),
1073 ('sv102_version_minor', DWORD),
1074 ('sv102_type', DWORD),
1075 ('sv102_comment', LPWSTR),
1076 ('sv102_users', DWORD),
1077 ('sv102_disc', DWORD),
1078 ('sv102_hidden', DWORD),
1079 ('sv102_announce', DWORD),
1080 ('sv102_anndelta', DWORD),
1081 ('sv102_licenses', DWORD),
1082 ('sv102_userpath', LPWSTR),
1083 )
1085class LPSERVER_INFO_102(NDRPOINTER):
1086 referent = (
1087 ('Data', SERVER_INFO_102),
1088 )
1090# 2.2.4.43 SERVER_INFO_103
1091class SERVER_INFO_103(NDRSTRUCT):
1092 structure = (
1093 ('sv103_platform_id', DWORD),
1094 ('sv103_name', LPWSTR),
1095 ('sv103_version_major', DWORD),
1096 ('sv103_version_minor', DWORD),
1097 ('sv103_type', DWORD),
1098 ('sv103_comment', LPWSTR),
1099 ('sv103_users', DWORD),
1100 ('sv103_disc', DWORD),
1101 ('sv103_hidden', DWORD),
1102 ('sv103_announce', DWORD),
1103 ('sv103_anndelta', DWORD),
1104 ('sv103_licenses', DWORD),
1105 ('sv103_userpath', LPWSTR),
1106 ('sv103_capabilities', DWORD),
1107 )
1109class LPSERVER_INFO_103(NDRPOINTER):
1110 referent = (
1111 ('Data', SERVER_INFO_103),
1112 )
1114# 2.2.4.44 SERVER_INFO_502
1115class SERVER_INFO_502(NDRSTRUCT):
1116 structure = (
1117 ('sv502_sessopens', DWORD),
1118 ('sv502_sessvcs', DWORD),
1119 ('sv502_opensearch', DWORD),
1120 ('sv502_sizreqbuf', DWORD),
1121 ('sv502_initworkitems', DWORD),
1122 ('sv502_maxworkitems', DWORD),
1123 ('sv502_rawworkitems', DWORD),
1124 ('sv502_irpstacksize', DWORD),
1125 ('sv502_maxrawbuflen', DWORD),
1126 ('sv502_sessusers', DWORD),
1127 ('sv502_sessconns', DWORD),
1128 ('sv502_maxpagedmemoryusage', DWORD),
1129 ('sv502_maxnonpagedmemoryusage', DWORD),
1130 ('sv502_enablesoftcompat', DWORD),
1131 ('sv502_enableforcedlogoff', DWORD),
1132 ('sv502_timesource', DWORD),
1133 ('sv502_acceptdownlevelapis', DWORD),
1134 ('sv502_lmannounce', DWORD),
1135 )
1137class LPSERVER_INFO_502(NDRPOINTER):
1138 referent = (
1139 ('Data', SERVER_INFO_502),
1140 )
1142# 2.2.4.45 SERVER_INFO_503
1143class SERVER_INFO_503(NDRSTRUCT):
1144 structure = (
1145 ('sv503_sessopens', DWORD),
1146 ('sv503_sessvcs', DWORD),
1147 ('sv503_opensearch', DWORD),
1148 ('sv503_sizreqbuf', DWORD),
1149 ('sv503_initworkitems', DWORD),
1150 ('sv503_maxworkitems', DWORD),
1151 ('sv503_rawworkitems', DWORD),
1152 ('sv503_irpstacksize', DWORD),
1153 ('sv503_maxrawbuflen', DWORD),
1154 ('sv503_sessusers', DWORD),
1155 ('sv503_sessconns', DWORD),
1156 ('sv503_maxpagedmemoryusage', DWORD),
1157 ('sv503_maxnonpagedmemoryusage', DWORD),
1158 ('sv503_enablesoftcompat', DWORD),
1159 ('sv503_enableforcedlogoff', DWORD),
1160 ('sv503_timesource', DWORD),
1161 ('sv503_acceptdownlevelapis', DWORD),
1162 ('sv503_lmannounce', DWORD),
1163 ('sv503_domain', LPWSTR),
1164 ('sv503_maxcopyreadlen', DWORD),
1165 ('sv503_maxcopywritelen', DWORD),
1166 ('sv503_minkeepsearch', DWORD),
1167 ('sv503_maxkeepsearch', DWORD),
1168 ('sv503_minkeepcomplsearch', DWORD),
1169 ('sv503_maxkeepcomplsearch', DWORD),
1170 ('sv503_threadcountadd', DWORD),
1171 ('sv503_numblockthreads', DWORD),
1172 ('sv503_scavtimeout', DWORD),
1173 ('sv503_minrcvqueue', DWORD),
1174 ('sv503_minfreeworkitems', DWORD),
1175 ('sv503_xactmemsize', DWORD),
1176 ('sv503_threadpriority', DWORD),
1177 ('sv503_maxmpxct', DWORD),
1178 ('sv503_oplockbreakwait', DWORD),
1179 ('sv503_oplockbreakresponsewait', DWORD),
1180 ('sv503_enableoplocks', DWORD),
1181 ('sv503_enableoplockforceclose', DWORD),
1182 ('sv503_enablefcbopens', DWORD),
1183 ('sv503_enableraw', DWORD),
1184 ('sv503_enablesharednetdrives', DWORD),
1185 ('sv503_minfreeconnections', DWORD),
1186 ('sv503_maxfreeconnections', DWORD),
1187 )
1189class LPSERVER_INFO_503(NDRPOINTER):
1190 referent = (
1191 ('Data', SERVER_INFO_503),
1192 )
1194# 2.2.4.46 SERVER_INFO_599
1195class SERVER_INFO_599(NDRSTRUCT):
1196 structure = (
1197 ('sv599_sessopens', DWORD),
1198 ('sv599_sessvcs', DWORD),
1199 ('sv599_opensearch', DWORD),
1200 ('sv599_sizreqbuf', DWORD),
1201 ('sv599_initworkitems', DWORD),
1202 ('sv599_maxworkitems', DWORD),
1203 ('sv599_rawworkitems', DWORD),
1204 ('sv599_irpstacksize', DWORD),
1205 ('sv599_maxrawbuflen', DWORD),
1206 ('sv599_sessusers', DWORD),
1207 ('sv599_sessconns', DWORD),
1208 ('sv599_maxpagedmemoryusage', DWORD),
1209 ('sv599_maxnonpagedmemoryusage', DWORD),
1210 ('sv599_enablesoftcompat', DWORD),
1211 ('sv599_enableforcedlogoff', DWORD),
1212 ('sv599_timesource', DWORD),
1213 ('sv599_acceptdownlevelapis', DWORD),
1214 ('sv599_lmannounce', DWORD),
1215 ('sv599_domain', LPWSTR),
1216 ('sv599_maxcopyreadlen', DWORD),
1217 ('sv599_maxcopywritelen', DWORD),
1218 ('sv599_minkeepsearch', DWORD),
1219 ('sv599_maxkeepsearch', DWORD),
1220 ('sv599_minkeepcomplsearch', DWORD),
1221 ('sv599_maxkeepcomplsearch', DWORD),
1222 ('sv599_threadcountadd', DWORD),
1223 ('sv599_numblockthreads', DWORD),
1224 ('sv599_scavtimeout', DWORD),
1225 ('sv599_minrcvqueue', DWORD),
1226 ('sv599_minfreeworkitems', DWORD),
1227 ('sv599_xactmemsize', DWORD),
1228 ('sv599_threadpriority', DWORD),
1229 ('sv599_maxmpxct', DWORD),
1230 ('sv599_oplockbreakwait', DWORD),
1231 ('sv599_oplockbreakresponsewait', DWORD),
1232 ('sv599_enableoplocks', DWORD),
1233 ('sv599_enableoplockforceclose', DWORD),
1234 ('sv599_enablefcbopens', DWORD),
1235 ('sv599_enableraw', DWORD),
1236 ('sv599_enablesharednetdrives', DWORD),
1237 ('sv599_minfreeconnections', DWORD),
1238 ('sv599_maxfreeconnections', DWORD),
1239 ('sv599_initsesstable', DWORD),
1240 ('sv599_initconntable', DWORD),
1241 ('sv599_initfiletable', DWORD),
1242 ('sv599_initsearchtable', DWORD),
1243 ('sv599_alertschedule', DWORD),
1244 ('sv599_errorthreshold', DWORD),
1245 ('sv599_networkerrorthreshold', DWORD),
1246 ('sv599_diskspacethreshold', DWORD),
1247 ('sv599_reserved', DWORD),
1248 ('sv599_maxlinkdelay', DWORD),
1249 ('sv599_minlinkthroughput', DWORD),
1250 ('sv599_linkinfovalidtime', DWORD),
1251 ('sv599_scavqosinfoupdatetime', DWORD),
1252 ('sv599_maxworkitemidletime', DWORD),
1253 )
1255class LPSERVER_INFO_599(NDRPOINTER):
1256 referent = (
1257 ('Data', SERVER_INFO_599),
1258 )
1260# 2.2.4.47 SERVER_INFO_1005
1261class SERVER_INFO_1005(NDRSTRUCT):
1262 structure = (
1263 ('sv1005_comment', LPWSTR),
1264 )
1266class LPSERVER_INFO_1005(NDRPOINTER):
1267 referent = (
1268 ('Data', SERVER_INFO_1005),
1269 )
1271# 2.2.4.48 SERVER_INFO_1107
1272class SERVER_INFO_1107(NDRSTRUCT):
1273 structure = (
1274 ('sv1107_users', DWORD),
1275 )
1277class LPSERVER_INFO_1107(NDRPOINTER):
1278 referent = (
1279 ('Data', SERVER_INFO_1107),
1280 )
1282# 2.2.4.49 SERVER_INFO_1010
1283class SERVER_INFO_1010(NDRSTRUCT):
1284 structure = (
1285 ('sv1010_disc', DWORD),
1286 )
1288class LPSERVER_INFO_1010(NDRPOINTER):
1289 referent = (
1290 ('Data', SERVER_INFO_1010),
1291 )
1293# 2.2.4.50 SERVER_INFO_1016
1294class SERVER_INFO_1016(NDRSTRUCT):
1295 structure = (
1296 ('sv1016_hidden', DWORD),
1297 )
1299class LPSERVER_INFO_1016(NDRPOINTER):
1300 referent = (
1301 ('Data', SERVER_INFO_1016),
1302 )
1304# 2.2.4.51 SERVER_INFO_1017
1305class SERVER_INFO_1017(NDRSTRUCT):
1306 structure = (
1307 ('sv1017_announce', DWORD),
1308 )
1310class LPSERVER_INFO_1017(NDRPOINTER):
1311 referent = (
1312 ('Data', SERVER_INFO_1017),
1313 )
1315# 2.2.4.52 SERVER_INFO_1018
1316class SERVER_INFO_1018(NDRSTRUCT):
1317 structure = (
1318 ('sv1018_anndelta', DWORD),
1319 )
1321class LPSERVER_INFO_1018(NDRPOINTER):
1322 referent = (
1323 ('Data', SERVER_INFO_1018),
1324 )
1326# 2.2.4.53 SERVER_INFO_1501
1327class SERVER_INFO_1501(NDRSTRUCT):
1328 structure = (
1329 ('sv1501_sessopens', DWORD),
1330 )
1332class LPSERVER_INFO_1501(NDRPOINTER):
1333 referent = (
1334 ('Data', SERVER_INFO_1501),
1335 )
1337# 2.2.4.54 SERVER_INFO_1502
1338class SERVER_INFO_1502(NDRSTRUCT):
1339 structure = (
1340 ('sv1502_sessvcs', DWORD),
1341 )
1343class LPSERVER_INFO_1502(NDRPOINTER):
1344 referent = (
1345 ('Data', SERVER_INFO_1502),
1346 )
1348# 2.2.4.55 SERVER_INFO_1503
1349class SERVER_INFO_1503(NDRSTRUCT):
1350 structure = (
1351 ('sv1503_opensearch', DWORD),
1352 )
1354class LPSERVER_INFO_1503(NDRPOINTER):
1355 referent = (
1356 ('Data', SERVER_INFO_1503),
1357 )
1359# 2.2.4.56 SERVER_INFO_1506
1360class SERVER_INFO_1506(NDRSTRUCT):
1361 structure = (
1362 ('sv1506_maxworkitems', DWORD),
1363 )
1365class LPSERVER_INFO_1506(NDRPOINTER):
1366 referent = (
1367 ('Data', SERVER_INFO_1506),
1368 )
1370# 2.2.4.57 SERVER_INFO_1510
1371class SERVER_INFO_1510(NDRSTRUCT):
1372 structure = (
1373 ('sv1510_sessusers', DWORD),
1374 )
1376class LPSERVER_INFO_1510(NDRPOINTER):
1377 referent = (
1378 ('Data', SERVER_INFO_1510),
1379 )
1381# 2.2.4.58 SERVER_INFO_1511
1382class SERVER_INFO_1511(NDRSTRUCT):
1383 structure = (
1384 ('sv1511_sessconns', DWORD),
1385 )
1387class LPSERVER_INFO_1511(NDRPOINTER):
1388 referent = (
1389 ('Data', SERVER_INFO_1511),
1390 )
1392# 2.2.4.59 SERVER_INFO_1512
1393class SERVER_INFO_1512(NDRSTRUCT):
1394 structure = (
1395 ('sv1512_maxnonpagedmemoryusage', DWORD),
1396 )
1398class LPSERVER_INFO_1512(NDRPOINTER):
1399 referent = (
1400 ('Data', SERVER_INFO_1512),
1401 )
1403# 2.2.4.60 SERVER_INFO_1513
1404class SERVER_INFO_1513(NDRSTRUCT):
1405 structure = (
1406 ('sv1513_maxpagedmemoryusage', DWORD),
1407 )
1409class LPSERVER_INFO_1513(NDRPOINTER):
1410 referent = (
1411 ('Data', SERVER_INFO_1513),
1412 )
1414# 2.2.4.61 SERVER_INFO_1514
1415class SERVER_INFO_1514(NDRSTRUCT):
1416 structure = (
1417 ('sv1514_enablesoftcompat', DWORD),
1418 )
1420class LPSERVER_INFO_1514(NDRPOINTER):
1421 referent = (
1422 ('Data', SERVER_INFO_1514),
1423 )
1425# 2.2.4.62 SERVER_INFO_1515
1426class SERVER_INFO_1515(NDRSTRUCT):
1427 structure = (
1428 ('sv1515_enableforcedlogoff', DWORD),
1429 )
1431class LPSERVER_INFO_1515(NDRPOINTER):
1432 referent = (
1433 ('Data', SERVER_INFO_1515),
1434 )
1436# 2.2.4.63 SERVER_INFO_1516
1437class SERVER_INFO_1516(NDRSTRUCT):
1438 structure = (
1439 ('sv1516_timesource', DWORD),
1440 )
1442class LPSERVER_INFO_1516(NDRPOINTER):
1443 referent = (
1444 ('Data', SERVER_INFO_1516),
1445 )
1447# 2.2.4.64 SERVER_INFO_1518
1448class SERVER_INFO_1518(NDRSTRUCT):
1449 structure = (
1450 ('sv1518_lmannounce', DWORD),
1451 )
1453class LPSERVER_INFO_1518(NDRPOINTER):
1454 referent = (
1455 ('Data', SERVER_INFO_1518),
1456 )
1458# 2.2.4.65 SERVER_INFO_1523
1459class SERVER_INFO_1523(NDRSTRUCT):
1460 structure = (
1461 ('sv1523_maxkeepsearch', DWORD),
1462 )
1464class LPSERVER_INFO_1523(NDRPOINTER):
1465 referent = (
1466 ('Data', SERVER_INFO_1523),
1467 )
1469# 2.2.4.66 SERVER_INFO_1528
1470class SERVER_INFO_1528(NDRSTRUCT):
1471 structure = (
1472 ('sv1528_scavtimeout', DWORD),
1473 )
1475class LPSERVER_INFO_1528(NDRPOINTER):
1476 referent = (
1477 ('Data', SERVER_INFO_1528),
1478 )
1480# 2.2.4.67 SERVER_INFO_1529
1481class SERVER_INFO_1529(NDRSTRUCT):
1482 structure = (
1483 ('sv1529_minrcvqueue', DWORD),
1484 )
1486class LPSERVER_INFO_1529(NDRPOINTER):
1487 referent = (
1488 ('Data', SERVER_INFO_1529),
1489 )
1491# 2.2.4.68 SERVER_INFO_1530
1492class SERVER_INFO_1530(NDRSTRUCT):
1493 structure = (
1494 ('sv1530_minfreeworkitems', DWORD),
1495 )
1497class LPSERVER_INFO_1530(NDRPOINTER):
1498 referent = (
1499 ('Data', SERVER_INFO_1530),
1500 )
1502# 2.2.4.69 SERVER_INFO_1533
1503class SERVER_INFO_1533(NDRSTRUCT):
1504 structure = (
1505 ('sv1533_maxmpxct', DWORD),
1506 )
1508class LPSERVER_INFO_1533(NDRPOINTER):
1509 referent = (
1510 ('Data', SERVER_INFO_1533),
1511 )
1513# 2.2.4.70 SERVER_INFO_1534
1514class SERVER_INFO_1534(NDRSTRUCT):
1515 structure = (
1516 ('sv1534_oplockbreakwait', DWORD),
1517 )
1519class LPSERVER_INFO_1534(NDRPOINTER):
1520 referent = (
1521 ('Data', SERVER_INFO_1534),
1522 )
1524# 2.2.4.71 SERVER_INFO_1535
1525class SERVER_INFO_1535(NDRSTRUCT):
1526 structure = (
1527 ('sv1535_oplockbreakresponsewait', DWORD),
1528 )
1530class LPSERVER_INFO_1535(NDRPOINTER):
1531 referent = (
1532 ('Data', SERVER_INFO_1535),
1533 )
1535# 2.2.4.72 SERVER_INFO_1536
1536class SERVER_INFO_1536(NDRSTRUCT):
1537 structure = (
1538 ('sv1536_enableoplocks', DWORD),
1539 )
1541class LPSERVER_INFO_1536(NDRPOINTER):
1542 referent = (
1543 ('Data', SERVER_INFO_1536),
1544 )
1546# 2.2.4.73 SERVER_INFO_1538
1547class SERVER_INFO_1538(NDRSTRUCT):
1548 structure = (
1549 ('sv1538_enablefcbopens', DWORD),
1550 )
1552class LPSERVER_INFO_1538(NDRPOINTER):
1553 referent = (
1554 ('Data', SERVER_INFO_1538),
1555 )
1557# 2.2.4.74 SERVER_INFO_1539
1558class SERVER_INFO_1539(NDRSTRUCT):
1559 structure = (
1560 ('sv1539_enableraw', DWORD),
1561 )
1563class LPSERVER_INFO_1539(NDRPOINTER):
1564 referent = (
1565 ('Data', SERVER_INFO_1539),
1566 )
1568# 2.2.4.75 SERVER_INFO_1540
1569class SERVER_INFO_1540(NDRSTRUCT):
1570 structure = (
1571 ('sv1540_enablesharednetdrives', DWORD),
1572 )
1574class LPSERVER_INFO_1540(NDRPOINTER):
1575 referent = (
1576 ('Data', SERVER_INFO_1540),
1577 )
1579# 2.2.4.76 SERVER_INFO_1541
1580class SERVER_INFO_1541(NDRSTRUCT):
1581 structure = (
1582 ('sv1541_minfreeconnections', DWORD),
1583 )
1585class LPSERVER_INFO_1541(NDRPOINTER):
1586 referent = (
1587 ('Data', SERVER_INFO_1541),
1588 )
1590# 2.2.4.77 SERVER_INFO_1542
1591class SERVER_INFO_1542(NDRSTRUCT):
1592 structure = (
1593 ('sv1542_maxfreeconnections', DWORD),
1594 )
1596class LPSERVER_INFO_1542(NDRPOINTER):
1597 referent = (
1598 ('Data', SERVER_INFO_1542),
1599 )
1601# 2.2.4.78 SERVER_INFO_1543
1602class SERVER_INFO_1543(NDRSTRUCT):
1603 structure = (
1604 ('sv1543_initsesstable', DWORD),
1605 )
1607class LPSERVER_INFO_1543(NDRPOINTER):
1608 referent = (
1609 ('Data', SERVER_INFO_1543),
1610 )
1612# 2.2.4.79 SERVER_INFO_1544
1613class SERVER_INFO_1544(NDRSTRUCT):
1614 structure = (
1615 ('sv1544_initconntable', DWORD),
1616 )
1618class LPSERVER_INFO_1544(NDRPOINTER):
1619 referent = (
1620 ('Data', SERVER_INFO_1544),
1621 )
1623# 2.2.4.80 SERVER_INFO_1545
1624class SERVER_INFO_1545(NDRSTRUCT):
1625 structure = (
1626 ('sv1545_initfiletable', DWORD),
1627 )
1629class LPSERVER_INFO_1545(NDRPOINTER):
1630 referent = (
1631 ('Data', SERVER_INFO_1545),
1632 )
1634# 2.2.4.81 SERVER_INFO_1546
1635class SERVER_INFO_1546(NDRSTRUCT):
1636 structure = (
1637 ('sv1546_initsearchtable', DWORD),
1638 )
1640class LPSERVER_INFO_1546(NDRPOINTER):
1641 referent = (
1642 ('Data', SERVER_INFO_1546),
1643 )
1645# 2.2.4.82 SERVER_INFO_1547
1646class SERVER_INFO_1547(NDRSTRUCT):
1647 structure = (
1648 ('sv1547_alertschedule', DWORD),
1649 )
1651class LPSERVER_INFO_1547(NDRPOINTER):
1652 referent = (
1653 ('Data', SERVER_INFO_1547),
1654 )
1656# 2.2.4.83 SERVER_INFO_1548
1657class SERVER_INFO_1548(NDRSTRUCT):
1658 structure = (
1659 ('sv1548_errorthreshold', DWORD),
1660 )
1662class LPSERVER_INFO_1548(NDRPOINTER):
1663 referent = (
1664 ('Data', SERVER_INFO_1548),
1665 )
1667# 2.2.4.84 SERVER_INFO_1549
1668class SERVER_INFO_1549(NDRSTRUCT):
1669 structure = (
1670 ('sv1549_networkerrorthreshold', DWORD),
1671 )
1673class LPSERVER_INFO_1549(NDRPOINTER):
1674 referent = (
1675 ('Data', SERVER_INFO_1549),
1676 )
1678# 2.2.4.85 SERVER_INFO_1550
1679class SERVER_INFO_1550(NDRSTRUCT):
1680 structure = (
1681 ('sv1550_diskspacethreshold', DWORD),
1682 )
1684class LPSERVER_INFO_1550(NDRPOINTER):
1685 referent = (
1686 ('Data', SERVER_INFO_1550),
1687 )
1689# 2.2.4.86 SERVER_INFO_1552
1690class SERVER_INFO_1552(NDRSTRUCT):
1691 structure = (
1692 ('sv1552_maxlinkdelay', DWORD),
1693 )
1695class LPSERVER_INFO_1552(NDRPOINTER):
1696 referent = (
1697 ('Data', SERVER_INFO_1552),
1698 )
1700# 2.2.4.87 SERVER_INFO_1553
1701class SERVER_INFO_1553(NDRSTRUCT):
1702 structure = (
1703 ('sv1553_minlinkthroughput', DWORD),
1704 )
1706class LPSERVER_INFO_1553(NDRPOINTER):
1707 referent = (
1708 ('Data', SERVER_INFO_1553),
1709 )
1711# 2.2.4.88 SERVER_INFO_1554
1712class SERVER_INFO_1554(NDRSTRUCT):
1713 structure = (
1714 ('sv1554_linkinfovalidtime', DWORD),
1715 )
1717class LPSERVER_INFO_1554(NDRPOINTER):
1718 referent = (
1719 ('Data', SERVER_INFO_1554),
1720 )
1722# 2.2.4.89 SERVER_INFO_1555
1723class SERVER_INFO_1555(NDRSTRUCT):
1724 structure = (
1725 ('sv1555_scavqosinfoupdatetime', DWORD),
1726 )
1728class LPSERVER_INFO_1555(NDRPOINTER):
1729 referent = (
1730 ('Data', SERVER_INFO_1555),
1731 )
1733# 2.2.4.90 SERVER_INFO_1556
1734class SERVER_INFO_1556(NDRSTRUCT):
1735 structure = (
1736 ('sv1556_maxworkitemidletime', DWORD),
1737 )
1739class LPSERVER_INFO_1556(NDRPOINTER):
1740 referent = (
1741 ('Data', SERVER_INFO_1556),
1742 )
1744# 2.2.4.91 DISK_INFO
1745class WCHAR_ARRAY(NDRSTRUCT):
1746 commonHdr = (
1747 ('Offset','<L=0'),
1748 ('ActualCount','<L=len(Data)//2'),
1749 )
1750 commonHdr64 = (
1751 ('Offset','<Q=0'),
1752 ('ActualCount','<Q=len(Data)//2'),
1753 )
1754 structure = (
1755 ('Data',':'),
1756 )
1758 def dump(self, msg = None, indent = 0):
1759 if msg is None: 1759 ↛ 1760line 1759 didn't jump to line 1760, because the condition on line 1759 was never true
1760 msg = self.__class__.__name__
1761 if msg != '': 1761 ↛ 1764line 1761 didn't jump to line 1764, because the condition on line 1761 was never false
1762 print("%s" % msg, end=' ')
1763 # Here just print the data
1764 print(" %r" % (self['Data']), end=' ')
1766 def __setitem__(self, key, value):
1767 if key == 'Data':
1768 try:
1769 self.fields[key] = value.encode('utf-16le')
1770 except UnicodeDecodeError:
1771 import sys
1772 self.fields[key] = value.decode(sys.getfilesystemencoding()).encode('utf-16le')
1773 self.fields['ActualCount'] = None
1774 self.data = None # force recompute
1775 else:
1776 return NDR.__setitem__(self, key, value)
1778 def __getitem__(self, key):
1779 if key == 'Data':
1780 return self.fields[key].decode('utf-16le')
1781 else:
1782 return NDR.__getitem__(self,key)
1784 def getDataLen(self, data, offset=0):
1785 return self["ActualCount"]*2
1788class DISK_INFO(NDRSTRUCT):
1789 structure = (
1790 ('Disk', WCHAR_ARRAY),
1791 )
1793class LPDISK_INFO(NDRPOINTER):
1794 referent = (
1795 ('Data', DISK_INFO),
1796 )
1798class DISK_INFO_ARRAY(NDRUniConformantVaryingArray):
1799 item = DISK_INFO
1801class LPDISK_INFO_ARRAY(NDRPOINTER):
1802 referent = (
1803 ('Data', DISK_INFO_ARRAY),
1804 )
1806# 2.2.4.92 DISK_ENUM_CONTAINER
1807class DISK_ENUM_CONTAINER(NDRSTRUCT):
1808 structure = (
1809 ('EntriesRead', DWORD),
1810 ('Buffer', LPDISK_INFO_ARRAY),
1811 )
1813class LPDISK_ENUM_CONTAINER(NDRPOINTER):
1814 referent = (
1815 ('Data', DISK_ENUM_CONTAINER),
1816 )
1818# 2.2.4.93 SERVER_TRANSPORT_INFO_0
1819class SERVER_TRANSPORT_INFO_0(NDRSTRUCT):
1820 structure = (
1821 ('svti0_numberofvcs', DWORD),
1822 ('svti0_transportname', LPWSTR),
1823 ('svti0_transportaddress', PNDRUniConformantArray),
1824 ('svti0_transportaddresslength', DWORD),
1825 ('svti0_networkaddress', LPWSTR),
1826 )
1828class LPSERVER_TRANSPORT_INFO_0(NDRPOINTER):
1829 referent = (
1830 ('Data', SERVER_TRANSPORT_INFO_0),
1831 )
1833class SERVER_TRANSPORT_INFO_0_ARRAY(NDRUniConformantArray):
1834 item = SERVER_TRANSPORT_INFO_0
1836class LPSERVER_TRANSPORT_INFO_0_ARRAY(NDRPOINTER):
1837 referent = (
1838 ('Data', SERVER_TRANSPORT_INFO_0_ARRAY),
1839 )
1841# 2.2.4.94 SERVER_TRANSPORT_INFO_1
1842class SERVER_TRANSPORT_INFO_1(NDRSTRUCT):
1843 structure = (
1844 ('svti1_numberofvcs', DWORD),
1845 ('svti1_transportname', LPWSTR),
1846 ('svti1_transportaddress', PNDRUniConformantArray),
1847 ('svti1_transportaddresslength', DWORD),
1848 ('svti1_networkaddress', LPWSTR),
1849 ('svti1_domain', LPWSTR),
1850 )
1852class LPSERVER_TRANSPORT_INFO_1(NDRPOINTER):
1853 referent = (
1854 ('Data', SERVER_TRANSPORT_INFO_1),
1855 )
1857class SERVER_TRANSPORT_INFO_1_ARRAY(NDRUniConformantArray):
1858 item = SERVER_TRANSPORT_INFO_1
1860class LPSERVER_TRANSPORT_INFO_1_ARRAY(NDRPOINTER):
1861 referent = (
1862 ('Data', SERVER_TRANSPORT_INFO_1_ARRAY),
1863 )
1865# 2.2.4.95 SERVER_TRANSPORT_INFO_2
1866class SERVER_TRANSPORT_INFO_2(NDRSTRUCT):
1867 structure = (
1868 ('svti2_numberofvcs', DWORD),
1869 ('svti2_transportname', LPWSTR),
1870 ('svti2_transportaddress', PNDRUniConformantArray),
1871 ('svti2_transportaddresslength', DWORD),
1872 ('svti2_networkaddress', LPWSTR),
1873 ('svti2_domain', LPWSTR),
1874 ('svti2_flags', DWORD),
1875 )
1877class LPSERVER_TRANSPORT_INFO_2(NDRPOINTER):
1878 referent = (
1879 ('Data', SERVER_TRANSPORT_INFO_2),
1880 )
1882class SERVER_TRANSPORT_INFO_2_ARRAY(NDRUniConformantArray):
1883 item = SERVER_TRANSPORT_INFO_2
1885class LPSERVER_TRANSPORT_INFO_2_ARRAY(NDRPOINTER):
1886 referent = (
1887 ('Data', SERVER_TRANSPORT_INFO_2_ARRAY),
1888 )
1890# 2.2.4.96 SERVER_TRANSPORT_INFO_3
1891class PASSWORD_ARRAY(NDRUniFixedArray):
1892 def getDataLen(self, data, offset=0):
1893 return 256
1895class SERVER_TRANSPORT_INFO_3(NDRSTRUCT):
1896 structure = (
1897 ('svti3_numberofvcs', DWORD),
1898 ('svti3_transportname', LPWSTR),
1899 ('svti3_transportaddress', PNDRUniConformantArray),
1900 ('svti3_transportaddresslength', DWORD),
1901 ('svti3_networkaddress', LPWSTR),
1902 ('svti3_domain', LPWSTR),
1903 ('svti3_flags', DWORD),
1904 ('svti3_passwordlength', DWORD),
1905 ('svti3_password', PASSWORD_ARRAY),
1906 )
1908class LPSERVER_TRANSPORT_INFO_3(NDRPOINTER):
1909 referent = (
1910 ('Data', SERVER_TRANSPORT_INFO_3),
1911 )
1913class SERVER_TRANSPORT_INFO_3_ARRAY(NDRUniConformantArray):
1914 item = SERVER_TRANSPORT_INFO_3
1916class LPSERVER_TRANSPORT_INFO_3_ARRAY(NDRPOINTER):
1917 referent = (
1918 ('Data', SERVER_TRANSPORT_INFO_3_ARRAY),
1919 )
1921# 2.2.4.97 SERVER_XPORT_INFO_0_CONTAINER
1922class SERVER_XPORT_INFO_0_CONTAINER(NDRSTRUCT):
1923 structure = (
1924 ('EntriesRead', DWORD),
1925 ('Buffer', LPSERVER_TRANSPORT_INFO_0_ARRAY),
1926 )
1928class LPSERVER_XPORT_INFO_0_CONTAINER(NDRPOINTER):
1929 referent = (
1930 ('Data', SERVER_XPORT_INFO_0_CONTAINER),
1931 )
1933# 2.2.4.98 SERVER_XPORT_INFO_1_CONTAINER
1934class SERVER_XPORT_INFO_1_CONTAINER(NDRSTRUCT):
1935 structure = (
1936 ('EntriesRead', DWORD),
1937 ('Buffer', LPSERVER_TRANSPORT_INFO_1_ARRAY),
1938 )
1940class LPSERVER_XPORT_INFO_1_CONTAINER(NDRPOINTER):
1941 referent = (
1942 ('Data', SERVER_XPORT_INFO_1_CONTAINER),
1943 )
1945# 2.2.4.99 SERVER_XPORT_INFO_2_CONTAINER
1946class SERVER_XPORT_INFO_2_CONTAINER(NDRSTRUCT):
1947 structure = (
1948 ('EntriesRead', DWORD),
1949 ('Buffer', LPSERVER_TRANSPORT_INFO_2_ARRAY),
1950 )
1952class LPSERVER_XPORT_INFO_2_CONTAINER(NDRPOINTER):
1953 referent = (
1954 ('Data', SERVER_XPORT_INFO_2_CONTAINER),
1955 )
1957# 2.2.4.100 SERVER_XPORT_INFO_3_CONTAINER
1958class SERVER_XPORT_INFO_3_CONTAINER(NDRSTRUCT):
1959 structure = (
1960 ('EntriesRead', DWORD),
1961 ('Buffer', LPSERVER_TRANSPORT_INFO_3_ARRAY),
1962 )
1964class LPSERVER_XPORT_INFO_3_CONTAINER(NDRPOINTER):
1965 referent = (
1966 ('Data', SERVER_XPORT_INFO_3_CONTAINER),
1967 )
1969# 2.2.3.8 SERVER_XPORT_ENUM_UNION
1970class SERVER_XPORT_ENUM_UNION(NDRUNION):
1971 commonHdr = (
1972 ('tag', DWORD),
1973 )
1975 union = {
1976 0: ('Level0', LPSERVER_XPORT_INFO_0_CONTAINER),
1977 1: ('Level1', LPSERVER_XPORT_INFO_1_CONTAINER),
1978 2: ('Level2', LPSERVER_XPORT_INFO_2_CONTAINER),
1979 3: ('Level3', LPSERVER_XPORT_INFO_3_CONTAINER),
1980 }
1982# 2.2.4.101 SERVER_XPORT_ENUM_STRUCT
1983class SERVER_XPORT_ENUM_STRUCT(NDRSTRUCT):
1984 structure = (
1985 ('Level', DWORD),
1986 ('XportInfo', SERVER_XPORT_ENUM_UNION),
1987 )
1989# 2.2.4.102 SERVER_ALIAS_INFO_0
1990class SERVER_ALIAS_INFO_0(NDRSTRUCT):
1991 structure = (
1992 ('srvai0_alias', LMSTR),
1993 ('srvai0_target', LMSTR),
1994 ('srvai0_default', NDRBOOLEAN),
1995 ('srvai0_reserved', ULONG),
1996 )
1998class LPSERVER_ALIAS_INFO_0(NDRPOINTER):
1999 referent = (
2000 ('Data', SERVER_ALIAS_INFO_0),
2001 )
2003class SERVER_ALIAS_INFO_0_ARRAY(NDRUniConformantArray):
2004 item = SERVER_ALIAS_INFO_0
2006class LPSERVER_ALIAS_INFO_0_ARRAY(NDRPOINTER):
2007 referent = (
2008 ('Data', SERVER_ALIAS_INFO_0_ARRAY),
2009 )
2011# 2.2.4.103 SERVER_ALIAS_INFO_0_CONTAINER
2012class SERVER_ALIAS_INFO_0_CONTAINER(NDRSTRUCT):
2013 structure = (
2014 ('EntriesRead', DWORD),
2015 ('Buffer', LPSERVER_ALIAS_INFO_0_ARRAY),
2016 )
2018class LPSERVER_ALIAS_INFO_0_CONTAINER(NDRPOINTER):
2019 referent = (
2020 ('Data', SERVER_ALIAS_INFO_0_CONTAINER),
2021 )
2023# 2.2.4.104 SERVER_ALIAS_ENUM_STRUCT
2024class SERVER_ALIAS_ENUM_UNION(NDRUNION):
2025 commonHdr = (
2026 ('tag', DWORD),
2027 )
2029 union = {
2030 0: ('Level0', LPSERVER_ALIAS_INFO_0_CONTAINER),
2031 }
2033class SERVER_ALIAS_ENUM_STRUCT(NDRSTRUCT):
2034 structure = (
2035 ('Level', DWORD),
2036 ('ServerAliasInfo', SERVER_ALIAS_ENUM_UNION),
2037 )
2039# 2.2.4.105 TIME_OF_DAY_INFO
2040class TIME_OF_DAY_INFO(NDRSTRUCT):
2041 structure = (
2042 ('tod_elapsedt', DWORD),
2043 ('tod_msecs', DWORD),
2044 ('tod_hours', DWORD),
2045 ('tod_mins', DWORD),
2046 ('tod_secs', DWORD),
2047 ('tod_hunds', DWORD),
2048 ('tod_timezone', DWORD),
2049 ('tod_tinterval', DWORD),
2050 ('tod_day', DWORD),
2051 ('tod_month', DWORD),
2052 ('tod_year', DWORD),
2053 ('tod_weekday', DWORD),
2054 )
2056class LPTIME_OF_DAY_INFO(NDRPOINTER):
2057 referent = (
2058 ('Data', TIME_OF_DAY_INFO),
2059 )
2061# 2.2.4.106 ADT_SECURITY_DESCRIPTOR
2062class ADT_SECURITY_DESCRIPTOR(NDRSTRUCT):
2063 structure = (
2064 ('Length', DWORD),
2065 ('Buffer', PNDRUniConformantArray),
2066 )
2068class PADT_SECURITY_DESCRIPTOR(NDRPOINTER):
2069 referent = (
2070 ('Data', ADT_SECURITY_DESCRIPTOR),
2071 )
2073# 2.2.4.107 NET_DFS_ENTRY_ID
2074class NET_DFS_ENTRY_ID(NDRSTRUCT):
2075 structure = (
2076 ('Uid', GUID),
2077 ('Prefix', LPWSTR),
2078 )
2080class NET_DFS_ENTRY_ID_ARRAY(NDRUniConformantArray):
2081 item = NET_DFS_ENTRY_ID
2083class LPNET_DFS_ENTRY_ID_ARRAY(NDRPOINTER):
2084 referent = (
2085 ('Data', NET_DFS_ENTRY_ID_ARRAY),
2086 )
2088# 2.2.4.108 NET_DFS_ENTRY_ID_CONTAINER
2089class NET_DFS_ENTRY_ID_CONTAINER(NDRSTRUCT):
2090 structure = (
2091 ('Count', DWORD),
2092 ('Buffer', LPNET_DFS_ENTRY_ID_ARRAY),
2093 )
2095# 2.2.4.109 DFS_SITENAME_INFO
2096class DFS_SITENAME_INFO(NDRSTRUCT):
2097 structure = (
2098 ('SiteFlags', DWORD),
2099 ('SiteName', LPWSTR),
2100 )
2102# 2.2.4.110 DFS_SITELIST_INFO
2103class DFS_SITENAME_INFO_ARRAY(NDRUniConformantArray):
2104 item = DFS_SITENAME_INFO
2106class DFS_SITELIST_INFO(NDRSTRUCT):
2107 structure = (
2108 ('cSites', DWORD),
2109 ('Site', DFS_SITENAME_INFO_ARRAY),
2110 )
2112class LPDFS_SITELIST_INFO(NDRPOINTER):
2113 referent = (
2114 ('Data', DFS_SITELIST_INFO),
2115 )
2117# 2.2.3 Unions
2118# 2.2.3.3 FILE_INFO
2119class FILE_INFO(NDRUNION):
2120 commonHdr = (
2121 ('tag', DWORD),
2122 )
2124 union = {
2125 2: ('FileInfo2', LPFILE_INFO_2),
2126 3: ('FileInfo3', LPFILE_INFO_3),
2127 }
2129# 2.2.3.6 SHARE_INFO
2130class SHARE_INFO(NDRUNION):
2131 commonHdr = (
2132 ('tag', DWORD),
2133 )
2135 union = {
2136 0: ('ShareInfo0', LPSHARE_INFO_0),
2137 1: ('ShareInfo1', LPSHARE_INFO_1),
2138 2: ('ShareInfo2', LPSHARE_INFO_2),
2139 502: ('ShareInfo502', LPSHARE_INFO_502),
2140 1004: ('ShareInfo1004', LPSHARE_INFO_1004),
2141 1006: ('ShareInfo1006', LPSHARE_INFO_1006),
2142 1501: ('ShareInfo1501', LPSHARE_INFO_1501),
2143 1005: ('ShareInfo1005', LPSHARE_INFO_1005),
2144 501: ('ShareInfo501', LPSHARE_INFO_501),
2145 503: ('ShareInfo503', LPSHARE_INFO_503),
2146 }
2148# 2.2.3.7 SERVER_INFO
2149class SERVER_INFO(NDRUNION):
2150 commonHdr = (
2151 ('tag', DWORD),
2152 )
2154 union = {
2155 100: ('ServerInfo100', LPSERVER_INFO_100),
2156 101: ('ServerInfo101', LPSERVER_INFO_101),
2157 102: ('ServerInfo102', LPSERVER_INFO_102),
2158 103: ('ServerInfo103', LPSERVER_INFO_103),
2159 502: ('ServerInfo502', LPSERVER_INFO_502),
2160 503: ('ServerInfo503', LPSERVER_INFO_503),
2161 599: ('ServerInfo599', LPSERVER_INFO_599),
2162 1005: ('ServerInfo1005', LPSERVER_INFO_1005),
2163 1107: ('ServerInfo1107', LPSERVER_INFO_1107),
2164 1010: ('ServerInfo1010', LPSERVER_INFO_1010),
2165 1016: ('ServerInfo1016', LPSERVER_INFO_1016),
2166 1017: ('ServerInfo1017', LPSERVER_INFO_1017),
2167 1018: ('ServerInfo1018', LPSERVER_INFO_1018),
2168 1501: ('ServerInfo1501', LPSERVER_INFO_1501),
2169 1502: ('ServerInfo1502', LPSERVER_INFO_1502),
2170 1503: ('ServerInfo1503', LPSERVER_INFO_1503),
2171 1506: ('ServerInfo1506', LPSERVER_INFO_1506),
2172 1510: ('ServerInfo1510', LPSERVER_INFO_1510),
2173 1511: ('ServerInfo1511', LPSERVER_INFO_1511),
2174 1512: ('ServerInfo1512', LPSERVER_INFO_1512),
2175 1513: ('ServerInfo1513', LPSERVER_INFO_1513),
2176 1514: ('ServerInfo1514', LPSERVER_INFO_1514),
2177 1515: ('ServerInfo1515', LPSERVER_INFO_1515),
2178 1516: ('ServerInfo1516', LPSERVER_INFO_1516),
2179 1518: ('ServerInfo1518', LPSERVER_INFO_1518),
2180 1523: ('ServerInfo1523', LPSERVER_INFO_1523),
2181 1528: ('ServerInfo1528', LPSERVER_INFO_1528),
2182 1529: ('ServerInfo1529', LPSERVER_INFO_1529),
2183 1530: ('ServerInfo1530', LPSERVER_INFO_1530),
2184 1533: ('ServerInfo1533', LPSERVER_INFO_1533),
2185 1534: ('ServerInfo1534', LPSERVER_INFO_1534),
2186 1535: ('ServerInfo1535', LPSERVER_INFO_1535),
2187 1536: ('ServerInfo1536', LPSERVER_INFO_1536),
2188 1538: ('ServerInfo1538', LPSERVER_INFO_1538),
2189 1539: ('ServerInfo1539', LPSERVER_INFO_1539),
2190 1540: ('ServerInfo1540', LPSERVER_INFO_1540),
2191 1541: ('ServerInfo1541', LPSERVER_INFO_1541),
2192 1542: ('ServerInfo1542', LPSERVER_INFO_1542),
2193 1543: ('ServerInfo1543', LPSERVER_INFO_1543),
2194 1544: ('ServerInfo1544', LPSERVER_INFO_1544),
2195 1545: ('ServerInfo1545', LPSERVER_INFO_1545),
2196 1546: ('ServerInfo1546', LPSERVER_INFO_1546),
2197 1547: ('ServerInfo1547', LPSERVER_INFO_1547),
2198 1548: ('ServerInfo1548', LPSERVER_INFO_1548),
2199 1549: ('ServerInfo1549', LPSERVER_INFO_1549),
2200 1550: ('ServerInfo1550', LPSERVER_INFO_1550),
2201 1552: ('ServerInfo1552', LPSERVER_INFO_1552),
2202 1553: ('ServerInfo1553', LPSERVER_INFO_1553),
2203 1554: ('ServerInfo1554', LPSERVER_INFO_1554),
2204 1555: ('ServerInfo1555', LPSERVER_INFO_1555),
2205 1556: ('ServerInfo1556', LPSERVER_INFO_1556),
2206 }
2208# 2.2.3.9 TRANSPORT_INFO
2209class TRANSPORT_INFO(NDRUNION):
2210 commonHdr = (
2211 ('tag', DWORD),
2212 )
2214 union = {
2215 0: ('Transport0', SERVER_TRANSPORT_INFO_0),
2216 1: ('Transport1', SERVER_TRANSPORT_INFO_1),
2217 2: ('Transport2', SERVER_TRANSPORT_INFO_2),
2218 3: ('Transport3', SERVER_TRANSPORT_INFO_3),
2219 }
2221# 2.2.3.10 SERVER_ALIAS_INFO
2222class SERVER_ALIAS_INFO(NDRUNION):
2223 commonHdr = (
2224 ('tag', DWORD),
2225 )
2227 union = {
2228 0: ('ServerAliasInfo0', LPSERVER_ALIAS_INFO_0),
2229 }
2232################################################################################
2233# RPC CALLS
2234################################################################################
2235# 3.1.4.1 NetrConnectionEnum (Opnum 8)
2236class NetrConnectionEnum(NDRCALL):
2237 opnum = 8
2238 structure = (
2239 ('ServerName', PSRVSVC_HANDLE),
2240 ('Qualifier', LPWSTR),
2241 ('InfoStruct', CONNECT_ENUM_STRUCT),
2242 ('PreferedMaximumLength', DWORD),
2243 ('ResumeHandle', LPLONG),
2244 )
2246class NetrConnectionEnumResponse(NDRCALL):
2247 structure = (
2248 ('InfoStruct',CONNECT_ENUM_STRUCT),
2249 ('TotalEntries',DWORD),
2250 ('ResumeHandle',LPLONG),
2251 ('ErrorCode',ULONG),
2252 )
2254# 3.1.4.2 NetrFileEnum (Opnum 9)
2255class NetrFileEnum(NDRCALL):
2256 opnum = 9
2257 structure = (
2258 ('ServerName', PSRVSVC_HANDLE),
2259 ('BasePath', LPWSTR),
2260 ('UserName', LPWSTR),
2261 ('InfoStruct', FILE_ENUM_STRUCT),
2262 ('PreferedMaximumLength', DWORD),
2263 ('ResumeHandle', LPLONG),
2264 )
2266class NetrFileEnumResponse(NDRCALL):
2267 structure = (
2268 ('InfoStruct',FILE_ENUM_STRUCT),
2269 ('TotalEntries',DWORD),
2270 ('ResumeHandle',LPLONG),
2271 ('ErrorCode',ULONG),
2272 )
2274# 3.1.4.3 NetrFileGetInfo (Opnum 10)
2275class NetrFileGetInfo(NDRCALL):
2276 opnum = 10
2277 structure = (
2278 ('ServerName', PSRVSVC_HANDLE),
2279 ('FileId', DWORD),
2280 ('Level', DWORD),
2281 )
2283class NetrFileGetInfoResponse(NDRCALL):
2284 structure = (
2285 ('InfoStruct',FILE_INFO),
2286 ('ErrorCode',ULONG),
2287 )
2289# 3.1.4.4 NetrFileClose (Opnum 11)
2290class NetrFileClose(NDRCALL):
2291 opnum = 11
2292 structure = (
2293 ('ServerName', PSRVSVC_HANDLE),
2294 ('FileId', DWORD),
2295 )
2297class NetrFileCloseResponse(NDRCALL):
2298 structure = (
2299 ('ErrorCode',ULONG),
2300 )
2302# 3.1.4.5 NetrSessionEnum (Opnum 12)
2303class NetrSessionEnum(NDRCALL):
2304 opnum = 12
2305 structure = (
2306 ('ServerName', PSRVSVC_HANDLE),
2307 ('ClientName', LPWSTR),
2308 ('UserName', LPWSTR),
2309 ('InfoStruct', SESSION_ENUM_STRUCT),
2310 ('PreferedMaximumLength', DWORD),
2311 ('ResumeHandle', LPLONG),
2312 )
2314class NetrSessionEnumResponse(NDRCALL):
2315 structure = (
2316 ('InfoStruct',SESSION_ENUM_STRUCT),
2317 ('TotalEntries',DWORD),
2318 ('ResumeHandle',LPLONG),
2319 ('ErrorCode',ULONG),
2320 )
2322# 3.1.4.6 NetrSessionDel (Opnum 13)
2323class NetrSessionDel(NDRCALL):
2324 opnum = 13
2325 structure = (
2326 ('ServerName', PSRVSVC_HANDLE),
2327 ('ClientName', LPWSTR),
2328 ('UserName', LPWSTR),
2329 )
2331class NetrSessionDelResponse(NDRCALL):
2332 structure = (
2333 ('ErrorCode',ULONG),
2334 )
2336# 3.1.4.7 NetrShareAdd (Opnum 14)
2337class NetrShareAdd(NDRCALL):
2338 opnum = 14
2339 structure = (
2340 ('ServerName', PSRVSVC_HANDLE),
2341 ('Level', DWORD),
2342 ('InfoStruct', SHARE_INFO),
2343 ('ParmErr', LPLONG),
2344 )
2346class NetrShareAddResponse(NDRCALL):
2347 structure = (
2348 ('ParmErr', LPLONG),
2349 ('ErrorCode',ULONG),
2350 )
2352# 3.1.4.8 NetrShareEnum (Opnum 15)
2353class NetrShareEnum(NDRCALL):
2354 opnum = 15
2355 structure = (
2356 ('ServerName', PSRVSVC_HANDLE),
2357 ('InfoStruct', SHARE_ENUM_STRUCT),
2358 ('PreferedMaximumLength', DWORD),
2359 ('ResumeHandle', LPLONG),
2360 )
2362class NetrShareEnumResponse(NDRCALL):
2363 structure = (
2364 ('InfoStruct', SHARE_ENUM_STRUCT),
2365 ('TotalEntries',DWORD),
2366 ('ResumeHandle',LPLONG),
2367 ('ErrorCode',ULONG),
2368 )
2370# 3.1.4.9 NetrShareEnumSticky (Opnum 36)
2371class NetrShareEnumSticky(NDRCALL):
2372 opnum = 36
2373 structure = (
2374 ('ServerName', PSRVSVC_HANDLE),
2375 ('InfoStruct', SHARE_ENUM_STRUCT),
2376 ('PreferedMaximumLength', DWORD),
2377 ('ResumeHandle', LPLONG),
2378 )
2380class NetrShareEnumStickyResponse(NDRCALL):
2381 structure = (
2382 ('InfoStruct', SHARE_ENUM_STRUCT),
2383 ('TotalEntries',DWORD),
2384 ('ResumeHandle',LPLONG),
2385 ('ErrorCode',ULONG),
2386 )
2388# 3.1.4.10 NetrShareGetInfo (Opnum 16)
2389class NetrShareGetInfo(NDRCALL):
2390 opnum = 16
2391 structure = (
2392 ('ServerName', PSRVSVC_HANDLE),
2393 ('NetName', WSTR),
2394 ('Level', DWORD),
2395 )
2397class NetrShareGetInfoResponse(NDRCALL):
2398 structure = (
2399 ('InfoStruct', SHARE_INFO),
2400 ('ErrorCode',ULONG),
2401 )
2403# 3.1.4.11 NetrShareSetInfo (Opnum 17)
2404class NetrShareSetInfo(NDRCALL):
2405 opnum = 17
2406 structure = (
2407 ('ServerName', PSRVSVC_HANDLE),
2408 ('NetName', WSTR),
2409 ('Level', DWORD),
2410 ('ShareInfo', SHARE_INFO),
2411 ('ParmErr', LPLONG),
2412 )
2414class NetrShareSetInfoResponse(NDRCALL):
2415 structure = (
2416 ('ParmErr', LPLONG),
2417 ('ErrorCode',ULONG),
2418 )
2420# 3.1.4.12 NetrShareDel (Opnum 18)
2421class NetrShareDel(NDRCALL):
2422 opnum = 18
2423 structure = (
2424 ('ServerName', PSRVSVC_HANDLE),
2425 ('NetName', WSTR),
2426 ('Reserved', DWORD),
2427 )
2429class NetrShareDelResponse(NDRCALL):
2430 structure = (
2431 ('ErrorCode',ULONG),
2432 )
2434# 3.1.4.13 NetrShareDelSticky (Opnum 19)
2435class NetrShareDelSticky(NDRCALL):
2436 opnum = 19
2437 structure = (
2438 ('ServerName', PSRVSVC_HANDLE),
2439 ('NetName', WSTR),
2440 ('Reserved', DWORD),
2441 )
2443class NetrShareDelStickyResponse(NDRCALL):
2444 structure = (
2445 ('ErrorCode',ULONG),
2446 )
2448# 3.1.4.14 NetrShareDelStart (Opnum 37)
2449class NetrShareDelStart(NDRCALL):
2450 opnum = 37
2451 structure = (
2452 ('ServerName', PSRVSVC_HANDLE),
2453 ('NetName', WSTR),
2454 ('Reserved', DWORD),
2455 )
2457class NetrShareDelStartResponse(NDRCALL):
2458 structure = (
2459 ('ContextHandle',SHARE_DEL_HANDLE),
2460 ('ErrorCode',ULONG),
2461 )
2463# 3.1.4.15 NetrShareDelCommit (Opnum 38)
2464class NetrShareDelCommit(NDRCALL):
2465 opnum = 38
2466 structure = (
2467 ('ContextHandle',SHARE_DEL_HANDLE),
2468 )
2470class NetrShareDelCommitResponse(NDRCALL):
2471 structure = (
2472 ('ErrorCode',ULONG),
2473 )
2475# 3.1.4.16 NetrShareCheck (Opnum 20)
2476class NetrShareCheck(NDRCALL):
2477 opnum = 20
2478 structure = (
2479 ('ServerName', PSRVSVC_HANDLE),
2480 ('Device', WSTR),
2481 )
2483class NetrShareCheckResponse(NDRCALL):
2484 structure = (
2485 ('Type',DWORD),
2486 ('ErrorCode',ULONG),
2487 )
2489# 3.1.4.17 NetrServerGetInfo (Opnum 21)
2490class NetrServerGetInfo(NDRCALL):
2491 opnum = 21
2492 structure = (
2493 ('ServerName', PSRVSVC_HANDLE),
2494 ('Level', DWORD),
2495 )
2497class NetrServerGetInfoResponse(NDRCALL):
2498 structure = (
2499 ('InfoStruct', SERVER_INFO),
2500 ('ErrorCode',ULONG),
2501 )
2503# 3.1.4.18 NetrServerSetInfo (Opnum 22)
2504class NetrServerSetInfo(NDRCALL):
2505 opnum = 22
2506 structure = (
2507 ('ServerName', PSRVSVC_HANDLE),
2508 ('Level', DWORD),
2509 ('InfoStruct', SERVER_INFO),
2510 )
2512class NetrServerSetInfoResponse(NDRCALL):
2513 structure = (
2514 ('ParmErr', LPLONG),
2515 ('ErrorCode',ULONG),
2516 )
2518# 3.1.4.19 NetrServerDiskEnum (Opnum 23)
2519class NetrServerDiskEnum(NDRCALL):
2520 opnum = 23
2521 structure = (
2522 ('ServerName', PSRVSVC_HANDLE),
2523 ('Level', DWORD),
2524 ('DiskInfoStruct', DISK_ENUM_CONTAINER),
2525 ('PreferedMaximumLength', DWORD),
2526 ('ResumeHandle', LPLONG),
2527 )
2529class NetrServerDiskEnumResponse(NDRCALL):
2530 structure = (
2531 ('DiskInfoStruct', DISK_ENUM_CONTAINER),
2532 ('TotalEntries', DWORD),
2533 ('ResumeHandle', LPLONG),
2534 ('ErrorCode',ULONG),
2535 )
2537# 3.1.4.20 NetrServerStatisticsGet (Opnum 24)
2538class NetrServerStatisticsGet(NDRCALL):
2539 opnum = 24
2540 structure = (
2541 ('ServerName', PSRVSVC_HANDLE),
2542 ('Service', LPWSTR),
2543 ('Level', DWORD),
2544 ('Options', DWORD),
2545 )
2547class NetrServerStatisticsGetResponse(NDRCALL):
2548 structure = (
2549 ('InfoStruct', LPSTAT_SERVER_0),
2550 ('ErrorCode',ULONG),
2551 )
2553# 3.1.4.21 NetrRemoteTOD (Opnum 28)
2554class NetrRemoteTOD(NDRCALL):
2555 opnum = 28
2556 structure = (
2557 ('ServerName', PSRVSVC_HANDLE),
2558 )
2560class NetrRemoteTODResponse(NDRCALL):
2561 structure = (
2562 ('BufferPtr', LPTIME_OF_DAY_INFO),
2563 ('ErrorCode',ULONG),
2564 )
2566# 3.1.4.22 NetrServerTransportAdd (Opnum 25)
2567class NetrServerTransportAdd(NDRCALL):
2568 opnum = 25
2569 structure = (
2570 ('ServerName', PSRVSVC_HANDLE),
2571 ('Level', DWORD),
2572 ('Buffer', SERVER_TRANSPORT_INFO_0),
2573 )
2575class NetrServerTransportAddResponse(NDRCALL):
2576 structure = (
2577 ('ErrorCode',ULONG),
2578 )
2580# 3.1.4.23 NetrServerTransportAddEx (Opnum 41)
2581class NetrServerTransportAddEx(NDRCALL):
2582 opnum = 41
2583 structure = (
2584 ('ServerName', PSRVSVC_HANDLE),
2585 ('Level', DWORD),
2586 ('Buffer', TRANSPORT_INFO),
2587 )
2589class NetrServerTransportAddExResponse(NDRCALL):
2590 structure = (
2591 ('ErrorCode',ULONG),
2592 )
2594# 3.1.4.24 NetrServerTransportEnum (Opnum 26)
2595class NetrServerTransportEnum(NDRCALL):
2596 opnum = 26
2597 structure = (
2598 ('ServerName', PSRVSVC_HANDLE),
2599 ('InfoStruct', SERVER_XPORT_ENUM_STRUCT),
2600 ('PreferedMaximumLength', DWORD),
2601 ('ResumeHandle', LPLONG),
2602 )
2604class NetrServerTransportEnumResponse(NDRCALL):
2605 structure = (
2606 ('InfoStruct', SERVER_XPORT_ENUM_STRUCT),
2607 ('TotalEntries', DWORD),
2608 ('ResumeHandle', LPLONG),
2609 ('ErrorCode',ULONG),
2610 )
2612# 3.1.4.25 NetrServerTransportDel (Opnum 27)
2613class NetrServerTransportDel(NDRCALL):
2614 opnum = 27
2615 structure = (
2616 ('ServerName', PSRVSVC_HANDLE),
2617 ('Level', DWORD),
2618 ('Buffer', SERVER_TRANSPORT_INFO_0),
2619 )
2621class NetrServerTransportDelResponse(NDRCALL):
2622 structure = (
2623 ('ErrorCode',ULONG),
2624 )
2626# 3.1.4.26 NetrServerTransportDelEx (Opnum 53)
2627class NetrServerTransportDelEx(NDRCALL):
2628 opnum = 53
2629 structure = (
2630 ('ServerName', PSRVSVC_HANDLE),
2631 ('Level', DWORD),
2632 ('Buffer', TRANSPORT_INFO),
2633 )
2635class NetrServerTransportDelExResponse(NDRCALL):
2636 structure = (
2637 ('ErrorCode',ULONG),
2638 )
2640# 3.1.4.27 NetrpGetFileSecurity (Opnum 39)
2641class NetrpGetFileSecurity(NDRCALL):
2642 opnum = 39
2643 structure = (
2644 ('ServerName', PSRVSVC_HANDLE),
2645 ('ShareName', LPWSTR),
2646 ('lpFileName', WSTR),
2647 ('RequestedInformation', SECURITY_INFORMATION),
2648 )
2650class NetrpGetFileSecurityResponse(NDRCALL):
2651 structure = (
2652 ('SecurityDescriptor', PADT_SECURITY_DESCRIPTOR),
2653 ('ErrorCode',ULONG),
2654 )
2656# 3.1.4.28 NetrpSetFileSecurity (Opnum 40)
2657class NetrpSetFileSecurity(NDRCALL):
2658 opnum = 40
2659 structure = (
2660 ('ServerName', PSRVSVC_HANDLE),
2661 ('ShareName', LPWSTR),
2662 ('lpFileName', WSTR),
2663 ('SecurityInformation', SECURITY_INFORMATION),
2664 ('SecurityDescriptor', ADT_SECURITY_DESCRIPTOR),
2665 )
2667class NetrpSetFileSecurityResponse(NDRCALL):
2668 structure = (
2669 ('ErrorCode',ULONG),
2670 )
2672# 3.1.4.29 NetprPathType (Opnum 30)
2673class NetprPathType(NDRCALL):
2674 opnum = 30
2675 structure = (
2676 ('ServerName', PSRVSVC_HANDLE),
2677 ('PathName', WSTR),
2678 ('Flags', DWORD),
2679 )
2681class NetprPathTypeResponse(NDRCALL):
2682 structure = (
2683 ('PathType', DWORD),
2684 ('ErrorCode',ULONG),
2685 )
2687# 3.1.4.30 NetprPathCanonicalize (Opnum 31)
2688class NetprPathCanonicalize(NDRCALL):
2689 opnum = 31
2690 structure = (
2691 ('ServerName', PSRVSVC_HANDLE),
2692 ('PathName', WSTR),
2693 ('OutbufLen', DWORD),
2694 ('Prefix', WSTR),
2695 ('PathType', DWORD),
2696 ('Flags', DWORD),
2697 )
2699class NetprPathCanonicalizeResponse(NDRCALL):
2700 structure = (
2701 ('Outbuf', NDRUniConformantArray),
2702 ('PathType', DWORD),
2703 ('ErrorCode',ULONG),
2704 )
2706# 3.1.4.31 NetprPathCompare (Opnum 32)
2707class NetprPathCompare(NDRCALL):
2708 opnum = 32
2709 structure = (
2710 ('ServerName', PSRVSVC_HANDLE),
2711 ('PathName1', WSTR),
2712 ('PathName2', WSTR),
2713 ('PathType', DWORD),
2714 ('Flags', DWORD),
2715 )
2717class NetprPathCompareResponse(NDRCALL):
2718 structure = (
2719 ('ErrorCode',ULONG),
2720 )
2722# 3.1.4.32 NetprNameValidate (Opnum 33)
2723class NetprNameValidate(NDRCALL):
2724 opnum = 33
2725 structure = (
2726 ('ServerName', PSRVSVC_HANDLE),
2727 ('Name', WSTR),
2728 ('NameType', DWORD),
2729 ('Flags', DWORD),
2730 )
2732class NetprNameValidateResponse(NDRCALL):
2733 structure = (
2734 ('ErrorCode',ULONG),
2735 )
2737# 3.1.4.33 NetprNameCanonicalize (Opnum 34)
2738class NetprNameCanonicalize(NDRCALL):
2739 opnum = 34
2740 structure = (
2741 ('ServerName', PSRVSVC_HANDLE),
2742 ('Name', WSTR),
2743 ('OutbufLen', DWORD),
2744 ('NameType', DWORD),
2745 ('Flags', DWORD),
2746 )
2748class NetprNameCanonicalizeResponse(NDRCALL):
2749 structure = (
2750 ('Outbuf', NDRUniConformantArray),
2751 ('NameType', DWORD),
2752 ('ErrorCode',ULONG),
2753 )
2755# 3.1.4.34 NetprNameCompare (Opnum 35)
2756class NetprNameCompare(NDRCALL):
2757 opnum = 35
2758 structure = (
2759 ('ServerName', PSRVSVC_HANDLE),
2760 ('Name1', WSTR),
2761 ('Name2', WSTR),
2762 ('NameType', DWORD),
2763 ('Flags', DWORD),
2764 )
2766class NetprNameCompareResponse(NDRCALL):
2767 structure = (
2768 ('ErrorCode',ULONG),
2769 )
2771# 3.1.4.35 NetrDfsGetVersion (Opnum 43)
2772class NetrDfsGetVersion(NDRCALL):
2773 opnum = 43
2774 structure = (
2775 ('ServerName', PSRVSVC_HANDLE),
2776 )
2778class NetrDfsGetVersionResponse(NDRCALL):
2779 structure = (
2780 ('Version', DWORD),
2781 ('ErrorCode',ULONG),
2782 )
2784# 3.1.4.36 NetrDfsCreateLocalPartition (Opnum 44)
2785class NetrDfsCreateLocalPartition(NDRCALL):
2786 opnum = 44
2787 structure = (
2788 ('ServerName', PSRVSVC_HANDLE),
2789 ('ShareName', WSTR),
2790 ('EntryUid', GUID),
2791 ('EntryPrefix', WSTR),
2792 ('ShortName', WSTR),
2793 ('RelationInfo', NET_DFS_ENTRY_ID_CONTAINER),
2794 ('Force', DWORD),
2795 )
2797class NetrDfsCreateLocalPartitionResponse(NDRCALL):
2798 structure = (
2799 ('ErrorCode',ULONG),
2800 )
2802# 3.1.4.37 NetrDfsDeleteLocalPartition (Opnum 45)
2803class NetrDfsDeleteLocalPartition(NDRCALL):
2804 opnum = 45
2805 structure = (
2806 ('ServerName', PSRVSVC_HANDLE),
2807 ('Uid', GUID),
2808 ('Prefix', WSTR),
2809 )
2811class NetrDfsDeleteLocalPartitionResponse(NDRCALL):
2812 structure = (
2813 ('ErrorCode',ULONG),
2814 )
2816# 3.1.4.38 NetrDfsSetLocalVolumeState (Opnum 46)
2817class NetrDfsSetLocalVolumeState(NDRCALL):
2818 opnum = 46
2819 structure = (
2820 ('ServerName', PSRVSVC_HANDLE),
2821 ('Uid', GUID),
2822 ('Prefix', WSTR),
2823 ('State', DWORD),
2824 )
2826class NetrDfsSetLocalVolumeStateResponse(NDRCALL):
2827 structure = (
2828 ('ErrorCode',ULONG),
2829 )
2831# 3.1.4.39 NetrDfsCreateExitPoint (Opnum 48)
2832class NetrDfsCreateExitPoint(NDRCALL):
2833 opnum = 48
2834 structure = (
2835 ('ServerName', PSRVSVC_HANDLE),
2836 ('Uid', GUID),
2837 ('Prefix', WSTR),
2838 ('Type', DWORD),
2839 ('ShortPrefixLen', DWORD),
2840 )
2842class NetrDfsCreateExitPointResponse(NDRCALL):
2843 structure = (
2844 ('ShortPrefix',WCHAR_ARRAY),
2845 ('ErrorCode',ULONG),
2846 )
2848# 3.1.4.40 NetrDfsModifyPrefix (Opnum 50)
2849class NetrDfsModifyPrefix(NDRCALL):
2850 opnum = 50
2851 structure = (
2852 ('ServerName', PSRVSVC_HANDLE),
2853 ('Uid', GUID),
2854 ('Prefix', WSTR),
2855 )
2857class NetrDfsModifyPrefixResponse(NDRCALL):
2858 structure = (
2859 ('ErrorCode',ULONG),
2860 )
2862# 3.1.4.41 NetrDfsDeleteExitPoint (Opnum 49)
2863class NetrDfsDeleteExitPoint(NDRCALL):
2864 opnum = 49
2865 structure = (
2866 ('ServerName', PSRVSVC_HANDLE),
2867 ('Uid', GUID),
2868 ('Prefix', WSTR),
2869 ('Type', DWORD),
2870 )
2872class NetrDfsDeleteExitPointResponse(NDRCALL):
2873 structure = (
2874 ('ErrorCode',ULONG),
2875 )
2877# 3.1.4.42 NetrDfsFixLocalVolume (Opnum 51)
2878class NetrDfsFixLocalVolume(NDRCALL):
2879 opnum = 51
2880 structure = (
2881 ('ServerName', PSRVSVC_HANDLE),
2882 ('VolumeName', WSTR),
2883 ('EntryType', DWORD),
2884 ('ServiceType', DWORD),
2885 ('StgId', WSTR),
2886 ('EntryUid', GUID),
2887 ('EntryPrefix', WSTR),
2888 ('RelationInfo', NET_DFS_ENTRY_ID_CONTAINER),
2889 ('CreateDisposition', DWORD),
2890 )
2892class NetrDfsFixLocalVolumeResponse(NDRCALL):
2893 structure = (
2894 ('ErrorCode',ULONG),
2895 )
2897# 3.1.4.43 NetrDfsManagerReportSiteInfo (Opnum 52)
2898class NetrDfsManagerReportSiteInfo(NDRCALL):
2899 opnum = 52
2900 structure = (
2901 ('ServerName', PSRVSVC_HANDLE),
2902 ('ppSiteInfo', LPDFS_SITELIST_INFO),
2903 )
2905class NetrDfsManagerReportSiteInfoResponse(NDRCALL):
2906 structure = (
2907 ('ppSiteInfo', LPDFS_SITELIST_INFO),
2908 ('ErrorCode',ULONG),
2909 )
2911# 3.1.4.44 NetrServerAliasAdd (Opnum 54)
2912class NetrServerAliasAdd(NDRCALL):
2913 opnum = 54
2914 structure = (
2915 ('ServerName', PSRVSVC_HANDLE),
2916 ('Level', DWORD),
2917 ('InfoStruct', SERVER_ALIAS_INFO),
2918 )
2920class NetrServerAliasAddResponse(NDRCALL):
2921 structure = (
2922 ('ErrorCode',ULONG),
2923 )
2925# 3.1.4.45 NetrServerAliasEnum (Opnum 55)
2926class NetrServerAliasEnum(NDRCALL):
2927 opnum = 55
2928 structure = (
2929 ('ServerName', PSRVSVC_HANDLE),
2930 ('InfoStruct', SERVER_ALIAS_ENUM_STRUCT),
2931 ('PreferedMaximumLength', DWORD),
2932 ('ResumeHandle', LPLONG),
2933 )
2935class NetrServerAliasEnumResponse(NDRCALL):
2936 structure = (
2937 ('InfoStruct',SERVER_ALIAS_ENUM_STRUCT),
2938 ('TotalEntries',DWORD),
2939 ('ResumeHandle',LPLONG),
2940 ('ErrorCode',ULONG),
2941 )
2943# 3.1.4.46 NetrServerAliasDel (Opnum 56)
2944class NetrServerAliasDel(NDRCALL):
2945 opnum = 56
2946 structure = (
2947 ('ServerName', PSRVSVC_HANDLE),
2948 ('Level', DWORD),
2949 ('InfoStruct', SERVER_ALIAS_INFO),
2950 )
2952class NetrServerAliasDelResponse(NDRCALL):
2953 structure = (
2954 ('ErrorCode',ULONG),
2955 )
2957# 3.1.4.47 NetrShareDelEx (Opnum 57)
2958class NetrShareDelEx(NDRCALL):
2959 opnum = 57
2960 structure = (
2961 ('ServerName', PSRVSVC_HANDLE),
2962 ('Level', DWORD),
2963 ('ShareInfo', SHARE_INFO),
2964 )
2966class NetrShareDelExResponse(NDRCALL):
2967 structure = (
2968 ('ErrorCode',ULONG),
2969 )
2971################################################################################
2972# OPNUMs and their corresponding structures
2973################################################################################
2974OPNUMS = {
2975 8 : (NetrConnectionEnum, NetrConnectionEnumResponse),
2976 9 : (NetrFileEnum, NetrFileEnumResponse),
297710 : (NetrFileGetInfo, NetrFileGetInfoResponse),
297811 : (NetrFileClose, NetrFileCloseResponse),
297912 : (NetrSessionEnum, NetrSessionEnumResponse),
298013 : (NetrSessionDel, NetrSessionDelResponse),
298114 : (NetrShareAdd, NetrShareAddResponse),
298215 : (NetrShareEnum, NetrShareEnumResponse),
298316 : (NetrShareGetInfo, NetrShareGetInfoResponse),
298417 : (NetrShareSetInfo, NetrShareSetInfoResponse),
298518 : (NetrShareDel, NetrShareDelResponse),
298619 : (NetrShareDelSticky, NetrShareDelStickyResponse),
298720 : (NetrShareCheck, NetrShareCheckResponse),
298821 : (NetrServerGetInfo, NetrServerGetInfoResponse),
298922 : (NetrServerSetInfo, NetrServerSetInfoResponse),
299023 : (NetrServerDiskEnum, NetrServerDiskEnumResponse),
299124 : (NetrServerStatisticsGet, NetrServerStatisticsGetResponse),
299225 : (NetrServerTransportAdd, NetrServerTransportAddResponse),
299326 : (NetrServerTransportEnum, NetrServerTransportEnumResponse),
299427 : (NetrServerTransportDel, NetrServerTransportDelResponse),
299528 : (NetrRemoteTOD, NetrRemoteTODResponse),
299630 : (NetprPathType, NetprPathTypeResponse),
299731 : (NetprPathCanonicalize, NetprPathCanonicalizeResponse),
299832 : (NetprPathCompare, NetprPathCompareResponse),
299933 : (NetprNameValidate, NetprNameValidateResponse),
300034 : (NetprNameCanonicalize, NetprNameCanonicalizeResponse),
300135 : (NetprNameCompare, NetprNameCompareResponse),
300236 : (NetrShareEnumSticky, NetrShareEnumStickyResponse),
300337 : (NetrShareDelStart, NetrShareDelStartResponse),
300438 : (NetrShareDelCommit, NetrShareDelCommitResponse),
300539 : (NetrpGetFileSecurity, NetrpGetFileSecurityResponse),
300640 : (NetrpSetFileSecurity, NetrpSetFileSecurityResponse),
300741 : (NetrServerTransportAddEx, NetrServerTransportAddExResponse),
300843 : (NetrDfsGetVersion, NetrDfsGetVersionResponse),
300944 : (NetrDfsCreateLocalPartition, NetrDfsCreateLocalPartitionResponse),
301045 : (NetrDfsDeleteLocalPartition, NetrDfsDeleteLocalPartitionResponse),
301146 : (NetrDfsSetLocalVolumeState, NetrDfsSetLocalVolumeStateResponse),
301248 : (NetrDfsCreateExitPoint, NetrDfsCreateExitPointResponse),
301349 : (NetrDfsDeleteExitPoint, NetrDfsDeleteExitPointResponse),
301450 : (NetrDfsModifyPrefix, NetrDfsModifyPrefixResponse),
301551 : (NetrDfsFixLocalVolume, NetrDfsFixLocalVolumeResponse),
301652 : (NetrDfsManagerReportSiteInfo, NetrDfsManagerReportSiteInfoResponse),
301753 : (NetrServerTransportDelEx, NetrServerTransportDelExResponse),
301854 : (NetrServerAliasAdd, NetrServerAliasAddResponse),
301955 : (NetrServerAliasEnum, NetrServerAliasEnumResponse),
302056 : (NetrServerAliasDel, NetrServerAliasDelResponse),
302157 : (NetrShareDelEx, NetrShareDelExResponse),
3022}
3024################################################################################
3025# HELPER FUNCTIONS
3026################################################################################
3027def hNetrConnectionEnum(dce, qualifier, level, resumeHandle = 0, preferedMaximumLength = 0xffffffff):
3028 request = NetrConnectionEnum()
3029 request['ServerName'] = NULL
3030 request['Qualifier'] = qualifier
3031 request['InfoStruct']['Level'] = level
3032 request['InfoStruct']['ConnectInfo']['tag'] = level
3033 request['PreferedMaximumLength'] = preferedMaximumLength
3034 request['ResumeHandle'] = resumeHandle
3035 return dce.request(request)
3037def hNetrFileEnum(dce, basePath, userName, level, resumeHandle = 0, preferedMaximumLength = 0xffffffff):
3038 request = NetrFileEnum()
3039 request['ServerName'] = NULL
3040 request['BasePath'] = basePath
3041 request['UserName'] = userName
3042 request['InfoStruct']['Level'] = level
3043 request['InfoStruct']['FileInfo']['tag'] = level
3044 request['PreferedMaximumLength'] = preferedMaximumLength
3045 request['ResumeHandle'] = resumeHandle
3046 return dce.request(request)
3048def hNetrFileGetInfo(dce, fileId, level):
3049 request = NetrFileGetInfo()
3050 request['ServerName'] = NULL
3051 request['FileId'] = fileId
3052 request['Level'] = level
3053 return dce.request(request)
3055def hNetrFileClose(dce, fileId):
3056 request = NetrFileClose()
3057 request['ServerName'] = NULL
3058 request['FileId'] = fileId
3059 return dce.request(request)
3061def hNetrSessionEnum(dce, clientName, userName, level, resumeHandle = 0, preferedMaximumLength = 0xffffffff):
3062 request = NetrSessionEnum()
3063 request['ServerName'] = NULL
3064 request['ClientName'] = clientName
3065 request['UserName'] = userName
3066 request['InfoStruct']['Level'] = level
3067 request['InfoStruct']['SessionInfo']['tag'] = level
3068 request['InfoStruct']['SessionInfo']['Level%d'%level]['Buffer'] = NULL
3069 request['PreferedMaximumLength'] = preferedMaximumLength
3070 request['ResumeHandle'] = resumeHandle
3072 return dce.request(request)
3074def hNetrSessionDel(dce, clientName, userName):
3075 request = NetrSessionDel()
3076 request['ServerName'] = NULL
3077 request['ClientName'] = clientName
3078 request['UserName'] = userName
3079 return dce.request(request)
3081def hNetrShareAdd(dce, level, infoStruct):
3082 request = NetrShareAdd()
3083 request['ServerName'] = NULL
3084 request['Level'] = level
3085 request['InfoStruct']['tag'] = level
3086 request['InfoStruct']['ShareInfo%d'%level] = infoStruct
3087 return dce.request(request)
3089def hNetrShareDel(dce, netName):
3090 request = NetrShareDel()
3091 request['ServerName'] = NULL
3092 request['NetName'] = netName
3093 return dce.request(request)
3095def hNetrShareEnum(dce, level, resumeHandle = 0, preferedMaximumLength = 0xffffffff):
3096 request = NetrShareEnum()
3097 request['ServerName'] = '\x00'
3098 request['PreferedMaximumLength'] = preferedMaximumLength
3099 request['ResumeHandle'] = resumeHandle
3100 request['InfoStruct']['Level'] = level
3101 request['InfoStruct']['ShareInfo']['tag'] = level
3102 request['InfoStruct']['ShareInfo']['Level%d'%level]['Buffer'] = NULL
3104 return dce.request(request)
3106def hNetrShareEnumSticky(dce, level, resumeHandle = 0, preferedMaximumLength = 0xffffffff):
3107 request = NetrShareEnumSticky()
3108 request['ServerName'] = NULL
3109 request['PreferedMaximumLength'] = preferedMaximumLength
3110 request['ResumeHandle'] = resumeHandle
3111 request['InfoStruct']['Level'] = level
3112 request['InfoStruct']['ShareInfo']['tag'] = level
3113 request['InfoStruct']['ShareInfo']['Level%d'%level]['Buffer'] = NULL
3115 return dce.request(request)
3117def hNetrShareGetInfo(dce, netName, level):
3118 request = NetrShareGetInfo()
3119 request['ServerName'] = NULL
3120 request['NetName'] = netName
3121 request['Level'] = level
3122 return dce.request(request)
3124def hNetrShareSetInfo(dce, netName, level, shareInfo):
3125 request = NetrShareSetInfo()
3126 request['ServerName'] = NULL
3127 request['NetName'] = netName
3128 request['Level'] = level
3129 request['ShareInfo']['tag'] = level
3130 request['ShareInfo']['ShareInfo%d'%level] = shareInfo
3132 return dce.request(request)
3134def hNetrShareDelSticky(dce, netName):
3135 request = NetrShareDelSticky()
3136 request['ServerName'] = NULL
3137 request['NetName'] = netName
3138 return dce.request(request)
3140# Sacala la h a estos 2, y tira todos los test cases juntos
3141def hNetrShareDelStart(dce, netName):
3142 request = NetrShareDelStart()
3143 request['ServerName'] = NULL
3144 request['NetName'] = netName
3145 return dce.request(request)
3147def hNetrShareDelCommit(dce, contextHandle):
3148 request = NetrShareDelCommit()
3149 request['ContextHandle'] = contextHandle
3150 return dce.request(request)
3152def hNetrShareCheck(dce, device):
3153 request = NetrShareCheck()
3154 request['ServerName'] = NULL
3155 request['Device'] = device
3156 return dce.request(request)
3158def hNetrServerGetInfo(dce, level):
3159 request = NetrServerGetInfo()
3160 request['ServerName'] = NULL
3161 request['Level'] = level
3162 return dce.request(request)
3164def hNetrServerDiskEnum(dce, level, resumeHandle = 0, preferedMaximumLength = 0xffffffff):
3165 request = NetrServerDiskEnum()
3166 request['ServerName'] = NULL
3167 request['PreferedMaximumLength'] = preferedMaximumLength
3168 request['ResumeHandle'] = resumeHandle
3169 request['Level'] = level
3170 request['DiskInfoStruct']['Buffer'] = NULL
3171 return dce.request(request)
3173def hNetrServerStatisticsGet(dce, service, level, options):
3174 request = NetrServerStatisticsGet()
3175 request['ServerName'] = NULL
3176 request['Service'] = service
3177 request['Level'] = level
3178 request['Options'] = options
3179 return dce.request(request)
3181def hNetrRemoteTOD(dce):
3182 request = NetrRemoteTOD()
3183 request['ServerName'] = NULL
3184 return dce.request(request)
3186def hNetrServerTransportEnum(dce, level, resumeHandle = 0, preferedMaximumLength = 0xffffffff):
3187 request = NetrServerTransportEnum()
3188 request['ServerName'] = NULL
3189 request['PreferedMaximumLength'] = preferedMaximumLength
3190 request['ResumeHandle'] = resumeHandle
3191 request['InfoStruct']['Level'] = level
3192 request['InfoStruct']['XportInfo']['tag'] = level
3193 request['InfoStruct']['XportInfo']['Level%d' % level]['Buffer'] = NULL
3194 return dce.request(request)
3196def hNetrpGetFileSecurity(dce, shareName, lpFileName, requestedInformation):
3197 request = NetrpGetFileSecurity()
3198 request['ServerName'] = NULL
3199 request['ShareName'] = shareName
3200 request['lpFileName'] = lpFileName
3201 request['RequestedInformation'] = requestedInformation
3202 retVal = dce.request(request)
3203 return b''.join(retVal['SecurityDescriptor']['Buffer'])
3205def hNetrpSetFileSecurity(dce, shareName, lpFileName, securityInformation, securityDescriptor):
3206 request = NetrpSetFileSecurity()
3207 request['ServerName'] = NULL
3208 request['ShareName'] = shareName
3209 request['lpFileName'] = lpFileName
3210 request['SecurityInformation'] = securityInformation
3211 request['SecurityDescriptor']['Length'] = len(securityDescriptor)
3212 request['SecurityDescriptor']['Buffer'] = list(securityDescriptor)
3213 return dce.request(request)
3215def hNetprPathType(dce, pathName, flags):
3216 request = NetprPathType()
3217 request['ServerName'] = NULL
3218 request['PathName'] = pathName
3219 request['Flags'] = flags
3220 return dce.request(request)
3222def hNetprPathCanonicalize(dce, pathName, prefix, outbufLen=50, pathType=0, flags=0):
3223 request = NetprPathCanonicalize()
3224 request['ServerName'] = NULL
3225 request['PathName'] = pathName
3226 request['OutbufLen'] = outbufLen
3227 request['Prefix'] = prefix
3228 request['PathType'] = pathType
3229 request['Flags'] = flags
3230 return dce.request(request)
3232def hNetprPathCompare(dce, pathName1, pathName2, pathType=0, flags=0):
3233 request = NetprPathCompare()
3234 request['ServerName'] = NULL
3235 request['PathName1'] = pathName1
3236 request['PathName2'] = pathName2
3237 request['PathType'] = pathType
3238 request['Flags'] = flags
3239 return dce.request(request)
3241def hNetprNameValidate(dce, name, nameType, flags=0):
3242 request = NetprNameValidate()
3243 request['ServerName'] = NULL
3244 request['Name'] = name
3245 request['NameType'] = nameType
3246 request['Flags'] = flags
3247 return dce.request(request)
3249def hNetprNameCanonicalize(dce, name, outbufLen=50, nameType=0, flags=0):
3250 request = NetprNameCanonicalize()
3251 request['ServerName'] = NULL
3252 request['Name'] = name
3253 request['OutbufLen'] = outbufLen
3254 request['NameType'] = nameType
3255 request['Flags'] = flags
3256 return dce.request(request)
3258def hNetprNameCompare(dce, name1, name2, nameType=0, flags=0):
3259 request = NetprNameCompare()
3260 request['ServerName'] = NULL
3261 request['Name1'] = name1
3262 request['Name2'] = name2
3263 request['NameType'] = nameType
3264 request['Flags'] = flags
3265 return dce.request(request)
3267def hNetrDfsGetVersion(dce):
3268 request = NetrDfsGetVersion()
3269 request['ServerName'] = NULL
3270 return dce.request(request)
3272def hNetrServerAliasAdd(dce, level, aliasInfo):
3273 request = NetrServerAliasAdd()
3274 request['ServerName'] = NULL
3275 request['Level'] = level
3276 request['InfoStruct']['tag'] = level
3277 request['InfoStruct']['ServerAliasInfo%d'%level] = aliasInfo
3278 return dce.request(request)
3280def hNetrServerAliasDel(dce, level, aliasInfo):
3281 request = NetrServerAliasDel()
3282 request['ServerName'] = NULL
3283 request['Level'] = level
3284 request['InfoStruct']['tag'] = level
3285 request['InfoStruct']['ServerAliasInfo%d'%level] = aliasInfo
3286 return dce.request(request)
3288def hNetrServerAliasEnum(dce, level, resumeHandle = 0, preferedMaximumLength = 0xffffffff):
3289 request = NetrServerAliasEnum()
3290 request['ServerName'] = NULL
3291 request['InfoStruct']['Level'] = level
3292 request['InfoStruct']['ServerAliasInfo']['tag'] = level
3293 request['InfoStruct']['ServerAliasInfo']['Level%d' % level]['Buffer'] = NULL
3294 request['PreferedMaximumLength'] = preferedMaximumLength
3295 request['ResumeHandle'] = resumeHandle
3296 return dce.request(request)