mirror of
https://github.com/lgandx/Responder.git
synced 2024-10-18 05:00:39 -07:00
3297 lines
88 KiB
Python
3297 lines
88 KiB
Python
# SECUREAUTH LABS. Copyright 2018 SecureAuth Corporation. All rights reserved.
|
|
#
|
|
# This software is provided under under a slightly modified version
|
|
# of the Apache Software License. See the accompanying LICENSE file
|
|
# for more information.
|
|
#
|
|
# Author: Alberto Solino (@agsolino)
|
|
#
|
|
# Description:
|
|
# [MS-SRVS] Interface implementation
|
|
#
|
|
# Best way to learn how to use these calls is to grab the protocol standard
|
|
# so you understand what the call does, and then read the test case located
|
|
# at https://github.com/SecureAuthCorp/impacket/tree/master/tests/SMB_RPC
|
|
#
|
|
# Some calls have helper functions, which makes it even easier to use.
|
|
# They are located at the end of this file.
|
|
# Helper functions start with "h"<name of the call>.
|
|
# There are test cases for them too.
|
|
#
|
|
from __future__ import division
|
|
from __future__ import print_function
|
|
from impacket.dcerpc.v5.rpcrt import DCERPCException
|
|
from impacket.dcerpc.v5.ndr import NDRCALL, NDR, NDRSTRUCT, NDRUNION, NDRPOINTER, NDRUniConformantArray, \
|
|
NDRUniFixedArray, NDRBOOLEAN, NDRUniConformantVaryingArray, PNDRUniConformantArray
|
|
from impacket.dcerpc.v5.dtypes import NULL, DWORD, LPWSTR, LPBYTE, LMSTR, ULONG, GUID, LPLONG, WSTR, \
|
|
SECURITY_INFORMATION, WCHAR
|
|
from impacket import system_errors
|
|
from impacket.uuid import uuidtup_to_bin
|
|
|
|
MSRPC_UUID_SRVS = uuidtup_to_bin(('4B324FC8-1670-01D3-1278-5A47BF6EE188', '3.0'))
|
|
|
|
class DCERPCSessionError(DCERPCException):
|
|
def __init__(self, error_string=None, error_code=None, packet=None):
|
|
DCERPCException.__init__(self, error_string, error_code, packet)
|
|
|
|
def __str__( self ):
|
|
key = self.error_code
|
|
if key in system_errors.ERROR_MESSAGES:
|
|
error_msg_short = system_errors.ERROR_MESSAGES[key][0]
|
|
error_msg_verbose = system_errors.ERROR_MESSAGES[key][1]
|
|
return 'SRVS SessionError: code: 0x%x - %s - %s' % (self.error_code, error_msg_short, error_msg_verbose)
|
|
else:
|
|
return 'SRVS SessionError: unknown error code: 0x%x' % self.error_code
|
|
|
|
################################################################################
|
|
# CONSTANTS
|
|
################################################################################
|
|
# 2.2.1.1 SRVSVC_HANDLE
|
|
SRVSVC_HANDLE = WCHAR
|
|
|
|
class PSRVSVC_HANDLE(NDRPOINTER):
|
|
referent = (
|
|
('Data', SRVSVC_HANDLE),
|
|
)
|
|
|
|
# 2.2.1.2 SHARE_DEL_HANDLE
|
|
class SHARE_DEL_HANDLE(NDRSTRUCT):
|
|
align = 1
|
|
structure = (
|
|
('Data','20s=""'),
|
|
)
|
|
|
|
# 2.2.1.3 PSHARE_DEL_HANDLE
|
|
class PSHARE_DEL_HANDLE(NDRPOINTER):
|
|
referent = (
|
|
('Data', SHARE_DEL_HANDLE),
|
|
)
|
|
|
|
# 2.2.2.2 MAX_PREFERRED_LENGTH
|
|
MAX_PREFERRED_LENGTH = -1
|
|
|
|
# 2.2.2.3 Session User Flags
|
|
SESS_GUEST = 0x00000001
|
|
SESS_NOENCRYPTION = 0x00000002
|
|
|
|
# 2.2.2.4 Share Types
|
|
STYPE_DISKTREE = 0x00000000
|
|
STYPE_PRINTQ = 0x00000001
|
|
STYPE_DEVICE = 0x00000002
|
|
STYPE_IPC = 0x00000003
|
|
STYPE_CLUSTER_FS = 0x02000000
|
|
STYPE_CLUSTER_SOFS = 0x04000000
|
|
STYPE_CLUSTER_DFS = 0x08000000
|
|
|
|
STYPE_SPECIAL = 0x80000000
|
|
STYPE_TEMPORARY = 0x40000000
|
|
|
|
# AND with shi_type to extract the Share Type part
|
|
STYPE_MASK = 0x000000FF
|
|
|
|
# 2.2.2.5 Client-Side Caching (CSC) States
|
|
CSC_CACHE_MANUAL_REINT = 0x00
|
|
CSC_CACHE_AUTO_REINT = 0x10
|
|
CSC_CACHE_VDO = 0x20
|
|
CSC_CACHE_NONE = 0x30
|
|
|
|
# 2.2.2.6 Platform IDs
|
|
PLATFORM_ID_DOS = 300
|
|
PLATFORM_ID_OS2 = 400
|
|
PLATFORM_ID_NT = 500
|
|
PLATFORM_ID_OSF = 600
|
|
PLATFORM_ID_VMS = 700
|
|
|
|
# 2.2.2.7 Software Type Flags
|
|
SV_TYPE_WORKSTATION = 0x00000001
|
|
SV_TYPE_SERVER = 0x00000002
|
|
SV_TYPE_SQLSERVER = 0x00000004
|
|
SV_TYPE_DOMAIN_CTRL = 0x00000008
|
|
SV_TYPE_DOMAIN_BAKCTRL = 0x00000010
|
|
SV_TYPE_TIME_SOURCE = 0x00000020
|
|
SV_TYPE_AFP = 0x00000040
|
|
SV_TYPE_NOVELL = 0x00000080
|
|
SV_TYPE_DOMAIN_MEMBER = 0x00000100
|
|
SV_TYPE_LOCAL_LIST_ONLY = 0x40000000
|
|
SV_TYPE_PRINTQ_SERVER = 0x00000200
|
|
SV_TYPE_DIALIN_SERVER = 0x00000400
|
|
SV_TYPE_XENIX_SERVER = 0x00000800
|
|
SV_TYPE_SERVER_MFPN = 0x00004000
|
|
SV_TYPE_NT = 0x00001000
|
|
SV_TYPE_WFW = 0x00002000
|
|
SV_TYPE_SERVER_NT = 0x00008000
|
|
SV_TYPE_POTENTIAL_BROWSER = 0x00010000
|
|
SV_TYPE_BACKUP_BROWSER = 0x00020000
|
|
SV_TYPE_MASTER_BROWSER = 0x00040000
|
|
SV_TYPE_DOMAIN_MASTER = 0x00080000
|
|
SV_TYPE_DOMAIN_ENUM = 0x80000000
|
|
SV_TYPE_WINDOWS = 0x00400000
|
|
SV_TYPE_ALL = 0xFFFFFFFF
|
|
SV_TYPE_TERMINALSERVER = 0x02000000
|
|
SV_TYPE_CLUSTER_NT = 0x10000000
|
|
SV_TYPE_CLUSTER_VS_NT = 0x04000000
|
|
|
|
# 2.2.2.8 Name Types
|
|
NAMETYPE_USER = 1
|
|
NAMETYPE_PASSWORD = 2
|
|
NAMETYPE_GROUP = 3
|
|
NAMETYPE_COMPUTER = 4
|
|
NAMETYPE_EVENT = 5
|
|
NAMETYPE_DOMAIN = 6
|
|
NAMETYPE_SERVICE = 7
|
|
NAMETYPE_NET = 8
|
|
NAMETYPE_SHARE = 9
|
|
NAMETYPE_MESSAGE = 10
|
|
NAMETYPE_MESSAGEDEST = 11
|
|
NAMETYPE_SHAREPASSWORD = 12
|
|
NAMETYPE_WORKGROUP = 13
|
|
|
|
# 2.2.2.9 Path Types
|
|
ITYPE_UNC_COMPNAME = 4144
|
|
ITYPE_UNC_WC = 4145
|
|
ITYPE_UNC = 4096
|
|
ITYPE_UNC_WC_PATH = 4097
|
|
ITYPE_UNC_SYS_SEM = 6400
|
|
ITYPE_UNC_SYS_SHMEM = 6656
|
|
ITYPE_UNC_SYS_MSLOT = 6144
|
|
ITYPE_UNC_SYS_PIPE = 6912
|
|
ITYPE_UNC_SYS_QUEUE = 7680
|
|
ITYPE_PATH_ABSND = 8194
|
|
ITYPE_PATH_ABSD = 8198
|
|
ITYPE_PATH_RELND = 8192
|
|
ITYPE_PATH_RELD = 8196
|
|
ITYPE_PATH_ABSND_WC = 8195
|
|
ITYPE_PATH_ABSD_WC = 8199
|
|
ITYPE_PATH_RELND_WC = 8193
|
|
ITYPE_PATH_RELD_WC = 8197
|
|
ITYPE_PATH_SYS_SEM = 10498
|
|
ITYPE_PATH_SYS_SHMEM = 10754
|
|
ITYPE_PATH_SYS_MSLOT = 10242
|
|
ITYPE_PATH_SYS_PIPE = 11010
|
|
ITYPE_PATH_SYS_COMM = 11266
|
|
ITYPE_PATH_SYS_PRINT = 11522
|
|
ITYPE_PATH_SYS_QUEUE = 11778
|
|
ITYPE_PATH_SYS_SEM_M = 43266
|
|
ITYPE_PATH_SYS_SHMEM_M = 43522
|
|
ITYPE_PATH_SYS_MSLOT_M = 43010
|
|
ITYPE_PATH_SYS_PIPE_M = 43778
|
|
ITYPE_PATH_SYS_COMM_M = 44034
|
|
ITYPE_PATH_SYS_PRINT_M = 44290
|
|
ITYPE_PATH_SYS_QUEUE_M = 44546
|
|
ITYPE_DEVICE_DISK = 16384
|
|
ITYPE_DEVICE_LPT = 16400
|
|
ITYPE_DEVICE_COM = 16416
|
|
ITYPE_DEVICE_CON = 16448
|
|
ITYPE_DEVICE_NUL = 16464
|
|
|
|
# 2.2.2.11 SHARE_INFO Parameter Error Codes
|
|
|
|
SHARE_NETNAME_PARMNUM = 1
|
|
SHARE_TYPE_PARMNUM = 3
|
|
SHARE_REMARK_PARMNUM = 4
|
|
SHARE_PERMISSIONS_PARMNUM = 5
|
|
SHARE_MAX_USES_PARMNUM = 6
|
|
SHARE_CURRENT_USES_PARMNUM = 7
|
|
SHARE_PATH_PARMNUM = 8
|
|
SHARE_PASSWD_PARMNUM = 9
|
|
SHARE_FILE_SD_PARMNUM = 501
|
|
|
|
# 2.2.2.12 SERVER_INFO Parameter Error Codes
|
|
SV_PLATFORM_ID_PARMNUM = 101
|
|
SV_NAME_PARMNUM = 102
|
|
SV_VERSION_MAJOR_PARMNUM = 103
|
|
SV_VERSION_MINOR_PARMNUM = 104
|
|
SV_TYPE_PARMNUM = 105
|
|
SV_COMMENT_PARMNUM = 5
|
|
SV_USERS_PARMNUM = 107
|
|
SV_DISC_PARMNUM = 10
|
|
SV_HIDDEN_PARMNUM = 16
|
|
SV_ANNOUNCE_PARMNUM = 17
|
|
SV_ANNDELTA_PARMNUM = 18
|
|
SV_USERPATH_PARMNUM = 112
|
|
SV_SESSOPENS_PARMNUM = 501
|
|
SV_SESSVCS_PARMNUM = 502
|
|
SV_OPENSEARCH_PARMNUM = 503
|
|
SV_SIZREQBUF_PARMNUM = 504
|
|
SV_INITWORKITEMS_PARMNUM = 505
|
|
SV_MAXWORKITEMS_PARMNUM = 506
|
|
SV_RAWWORKITEMS_PARMNUM = 507
|
|
SV_IRPSTACKSIZE_PARMNUM = 508
|
|
SV_MAXRAWBUFLEN_PARMNUM = 509
|
|
SV_SESSUSERS_PARMNUM = 510
|
|
SV_SESSCONNS_PARMNUM = 511
|
|
SV_MAXNONPAGEDMEMORYUSAGE_PARMNUM = 512
|
|
SV_MAXPAGEDMEMORYUSAGE_PARMNUM = 513
|
|
SV_ENABLESOFTCOMPAT_PARMNUM = 514
|
|
SV_ENABLEFORCEDLOGOFF_PARMNUM = 515
|
|
SV_TIMESOURCE_PARMNUM = 516
|
|
SV_ACCEPTDOWNLEVELAPIS_PARMNUM = 517
|
|
SV_LMANNOUNCE_PARMNUM = 518
|
|
SV_DOMAIN_PARMNUM = 519
|
|
SV_MAXCOPYREADLEN_PARMNUM = 520
|
|
SV_MAXCOPYWRITELEN_PARMNUM = 521
|
|
SV_MINKEEPSEARCH_PARMNUM = 522
|
|
SV_MAXKEEPSEARCH_PARMNUM = 523
|
|
SV_MINKEEPCOMPLSEARCH_PARMNUM = 524
|
|
SV_MAXKEEPCOMPLSEARCH_PARMNUM = 525
|
|
SV_THREADCOUNTADD_PARMNUM = 526
|
|
SV_NUMBLOCKTHREADS_PARMNUM = 527
|
|
SV_SCAVTIMEOUT_PARMNUM = 528
|
|
SV_MINRCVQUEUE_PARMNUM = 529
|
|
SV_MINFREEWORKITEMS_PARMNUM = 530
|
|
SV_XACTMEMSIZE_PARMNUM = 531
|
|
SV_THREADPRIORITY_PARMNUM = 532
|
|
SV_MAXMPXCT_PARMNUM = 533
|
|
SV_OPLOCKBREAKWAIT_PARMNUM = 534
|
|
SV_OPLOCKBREAKRESPONSEWAIT_PARMNUM = 535
|
|
SV_ENABLEOPLOCKS_PARMNUM = 536
|
|
SV_ENABLEOPLOCKFORCECLOSE_PARMNUM = 537
|
|
SV_ENABLEFCBOPENS_PARMNUM = 538
|
|
SV_ENABLERAW_PARMNUM = 539
|
|
SV_ENABLESHAREDNETDRIVES_PARMNUM = 540
|
|
SV_MINFREECONNECTIONS_PARMNUM = 541
|
|
SV_MAXFREECONNECTIONS_PARMNUM = 542
|
|
SV_INITSESSTABLE_PARMNUM = 543
|
|
SV_INITCONNTABLE_PARMNUM = 544
|
|
SV_INITFILETABLE_PARMNUM = 545
|
|
SV_INITSEARCHTABLE_PARMNUM = 546
|
|
SV_ALERTSCHEDULE_PARMNUM = 547
|
|
SV_ERRORTHRESHOLD_PARMNUM = 548
|
|
SV_NETWORKERRORTHRESHOLD_PARMNUM = 549
|
|
SV_DISKSPACETHRESHOLD_PARMNUM = 550
|
|
SV_MAXLINKDELAY_PARMNUM = 552
|
|
SV_MINLINKTHROUGHPUT_PARMNUM = 553
|
|
SV_LINKINFOVALIDTIME_PARMNUM = 554
|
|
SV_SCAVQOSINFOUPDATETIME_PARMNUM = 555
|
|
SV_MAXWORKITEMIDLETIME_PARMNUM = 556
|
|
|
|
# 2.2.2.13 DFS Entry Flags
|
|
PKT_ENTRY_TYPE_CAIRO = 0x0001
|
|
PKT_ENTRY_TYPE_MACHINE = 0x0002
|
|
PKT_ENTRY_TYPE_NONCAIRO = 0x0004
|
|
PKT_ENTRY_TYPE_LEAFONLY = 0x0008
|
|
PKT_ENTRY_TYPE_OUTSIDE_MY_DOM = 0x0010
|
|
PKT_ENTRY_TYPE_INSITE_ONLY = 0x0020
|
|
PKT_ENTRY_TYPE_REFERRAL_SVC = 0x0080
|
|
PKT_ENTRY_TYPE_PERMANENT = 0x0100
|
|
PKT_ENTRY_TYPE_LOCAL = 0x0400
|
|
PKT_ENTRY_TYPE_LOCAL_XPOINT = 0x0800
|
|
PKT_ENTRY_TYPE_MACH_SHARE = 0x1000
|
|
PKT_ENTRY_TYPE_OFFLINE = 0x2000
|
|
|
|
# 2.2.4.7 FILE_INFO_3
|
|
# fi3_permissions
|
|
PERM_FILE_READ = 0x00000001
|
|
PERM_FILE_WRITE = 0x00000002
|
|
PERM_FILE_CREATE = 0x00000004
|
|
ACCESS_EXEC = 0x00000008
|
|
ACCESS_DELETE = 0x00000010
|
|
ACCESS_ATRIB = 0x00000020
|
|
ACCESS_PERM = 0x00000040
|
|
|
|
# 2.2.4.29 SHARE_INFO_1005
|
|
# shi1005_flags
|
|
SHI1005_FLAGS_DFS = 0x00000001
|
|
SHI1005_FLAGS_DFS_ROOT = 0x00000002
|
|
CSC_MASK = 0x00000030
|
|
SHI1005_FLAGS_RESTRICT_EXCLUSIVE_OPENS = 0x00000100
|
|
SHI1005_FLAGS_FORCE_SHARED_DELETE = 0x00000200
|
|
SHI1005_FLAGS_ALLOW_NAMESPACE_CACHING = 0x00000400
|
|
SHI1005_FLAGS_ACCESS_BASED_DIRECTORY_ENUM = 0x00000800
|
|
SHI1005_FLAGS_FORCE_LEVELII_OPLOCK = 0x00001000
|
|
SHI1005_FLAGS_ENABLE_HASH = 0x00002000
|
|
SHI1005_FLAGS_ENABLE_CA = 0x00004000
|
|
SHI1005_FLAGS_ENCRYPT_DATA = 0x00008000
|
|
|
|
# 2.2.4.43 SERVER_INFO_103
|
|
# sv103_capabilities
|
|
SRV_SUPPORT_HASH_GENERATION = 0x0001
|
|
SRV_HASH_GENERATION_ACTIVE = 0x0002
|
|
|
|
# 2.2.4.96 SERVER_TRANSPORT_INFO_3
|
|
# svti3_flags
|
|
SVTI2_REMAP_PIPE_NAMES = 0x00000002
|
|
SVTI2_SCOPED_NAME = 0x00000004
|
|
|
|
# 2.2.4.109 DFS_SITENAME_INFO
|
|
# SiteFlags
|
|
DFS_SITE_PRIMARY = 0x00000001
|
|
|
|
# 3.1.4.42 NetrDfsFixLocalVolume (Opnum 51)
|
|
# ServiceType
|
|
DFS_SERVICE_TYPE_MASTER = 0x00000001
|
|
DFS_SERVICE_TYPE_READONLY = 0x00000002
|
|
DFS_SERVICE_TYPE_LOCAL = 0x00000004
|
|
DFS_SERVICE_TYPE_REFERRAL = 0x00000008
|
|
DFS_SERVICE_TYPE_ACTIVE = 0x000000010
|
|
DFS_SERVICE_TYPE_DOWN_LEVEL = 0x000000020
|
|
DFS_SERVICE_TYPE_COSTLIER = 0x000000040
|
|
DFS_SERVICE_TYPE_OFFLINE = 0x000000080
|
|
|
|
# CreateDisposition
|
|
FILE_SUPERSEDE = 0x00000000
|
|
FILE_OPEN = 0x00000001
|
|
FILE_CREATE = 0x00000002
|
|
|
|
################################################################################
|
|
# STRUCTURES
|
|
################################################################################
|
|
# 2.2.4.1 CONNECTION_INFO_0
|
|
class CONNECTION_INFO_0(NDRSTRUCT):
|
|
structure = (
|
|
('coni0_id', DWORD),
|
|
)
|
|
|
|
class CONNECTION_INFO_0_ARRAY(NDRUniConformantArray):
|
|
item = CONNECTION_INFO_0
|
|
|
|
class LPCONNECTION_INFO_0_ARRAY(NDRPOINTER):
|
|
referent = (
|
|
('Data', CONNECTION_INFO_0_ARRAY),
|
|
)
|
|
|
|
# 2.2.4.2 CONNECTION_INFO_1
|
|
class CONNECTION_INFO_1(NDRSTRUCT):
|
|
structure = (
|
|
('coni1_id', DWORD),
|
|
('coni1_type', DWORD),
|
|
('coni1_num_opens', DWORD),
|
|
('coni1_num_users', DWORD),
|
|
('coni1_time', DWORD),
|
|
('coni1_username', LPWSTR),
|
|
('coni1_netname', LPWSTR),
|
|
)
|
|
|
|
class CONNECTION_INFO_1_ARRAY(NDRUniConformantArray):
|
|
item = CONNECTION_INFO_1
|
|
|
|
class LPCONNECTION_INFO_1_ARRAY(NDRPOINTER):
|
|
referent = (
|
|
('Data', CONNECTION_INFO_1_ARRAY),
|
|
)
|
|
|
|
# 2.2.4.3 CONNECT_INFO_0_CONTAINER
|
|
class CONNECT_INFO_0_CONTAINER(NDRSTRUCT):
|
|
structure = (
|
|
('EntriesRead', DWORD),
|
|
('Buffer', LPCONNECTION_INFO_0_ARRAY),
|
|
)
|
|
|
|
class LPCONNECT_INFO_0_CONTAINER(NDRPOINTER):
|
|
referent = (
|
|
('Data', CONNECT_INFO_0_CONTAINER),
|
|
)
|
|
|
|
# 2.2.4.4 CONNECT_INFO_1_CONTAINER
|
|
class CONNECT_INFO_1_CONTAINER(NDRSTRUCT):
|
|
structure = (
|
|
('EntriesRead', DWORD),
|
|
('Buffer', LPCONNECTION_INFO_1_ARRAY),
|
|
)
|
|
|
|
class LPCONNECT_INFO_1_CONTAINER(NDRPOINTER):
|
|
referent = (
|
|
('Data', CONNECT_INFO_1_CONTAINER),
|
|
)
|
|
|
|
# 2.2.3.1 CONNECT_ENUM_UNION
|
|
class CONNECT_ENUM_UNION(NDRUNION):
|
|
commonHdr = (
|
|
('tag', DWORD),
|
|
)
|
|
|
|
union = {
|
|
0: ('Level0', LPCONNECT_INFO_0_CONTAINER),
|
|
1: ('Level1', LPCONNECT_INFO_1_CONTAINER),
|
|
}
|
|
|
|
# 2.2.4.5 CONNECT_ENUM_STRUCT
|
|
class CONNECT_ENUM_STRUCT(NDRSTRUCT):
|
|
structure = (
|
|
('Level', DWORD),
|
|
('ConnectInfo', CONNECT_ENUM_UNION),
|
|
)
|
|
|
|
# 2.2.4.6 FILE_INFO_2
|
|
class FILE_INFO_2(NDRSTRUCT):
|
|
structure = (
|
|
('fi2_id', DWORD),
|
|
)
|
|
|
|
class LPFILE_INFO_2(NDRPOINTER):
|
|
referent = (
|
|
('Data', FILE_INFO_2),
|
|
)
|
|
|
|
class FILE_INFO_2_ARRAY(NDRUniConformantArray):
|
|
item = FILE_INFO_2
|
|
|
|
class LPFILE_INFO_2_ARRAY(NDRPOINTER):
|
|
referent = (
|
|
('Data', FILE_INFO_2_ARRAY),
|
|
)
|
|
|
|
# 2.2.4.7 FILE_INFO_3
|
|
class FILE_INFO_3(NDRSTRUCT):
|
|
structure = (
|
|
('fi3_id', DWORD),
|
|
('fi3_permissions', DWORD),
|
|
('fi3_num_locks', DWORD),
|
|
('fi3_path_name', LPWSTR),
|
|
('fi3_username', LPWSTR),
|
|
)
|
|
|
|
class LPFILE_INFO_3(NDRPOINTER):
|
|
referent = (
|
|
('Data', FILE_INFO_3),
|
|
)
|
|
|
|
class FILE_INFO_3_ARRAY(NDRUniConformantArray):
|
|
item = FILE_INFO_3
|
|
|
|
class LPFILE_INFO_3_ARRAY(NDRPOINTER):
|
|
referent = (
|
|
('Data', FILE_INFO_3_ARRAY),
|
|
)
|
|
|
|
# 2.2.4.8 FILE_INFO_2_CONTAINER
|
|
class FILE_INFO_2_CONTAINER(NDRSTRUCT):
|
|
structure = (
|
|
('EntriesRead', DWORD),
|
|
('Buffer', LPFILE_INFO_2_ARRAY),
|
|
)
|
|
|
|
class LPFILE_INFO_2_CONTAINER(NDRPOINTER):
|
|
referent = (
|
|
('Data', FILE_INFO_2_CONTAINER),
|
|
)
|
|
|
|
# 2.2.4.9 FILE_INFO_3_CONTAINER
|
|
class FILE_INFO_3_CONTAINER(NDRSTRUCT):
|
|
structure = (
|
|
('EntriesRead', DWORD),
|
|
('Buffer', LPFILE_INFO_3_ARRAY),
|
|
)
|
|
|
|
class LPFILE_INFO_3_CONTAINER(NDRPOINTER):
|
|
referent = (
|
|
('Data', FILE_INFO_3_CONTAINER),
|
|
)
|
|
|
|
# 2.2.3.2 FILE_ENUM_UNION
|
|
class FILE_ENUM_UNION(NDRUNION):
|
|
commonHdr = (
|
|
('tag', DWORD),
|
|
)
|
|
|
|
union = {
|
|
2: ('Level2', LPFILE_INFO_2_CONTAINER),
|
|
3: ('Level3', LPFILE_INFO_3_CONTAINER),
|
|
}
|
|
|
|
# 2.2.4.10 FILE_ENUM_STRUCT
|
|
class FILE_ENUM_STRUCT(NDRSTRUCT):
|
|
structure = (
|
|
('Level', DWORD),
|
|
('FileInfo', FILE_ENUM_UNION),
|
|
)
|
|
|
|
# 2.2.4.11 SESSION_INFO_0
|
|
class SESSION_INFO_0(NDRSTRUCT):
|
|
structure = (
|
|
('sesi0_cname', LPWSTR),
|
|
)
|
|
|
|
class LPSESSION_INFO_0(NDRPOINTER):
|
|
referent = (
|
|
('Data', SESSION_INFO_0),
|
|
)
|
|
|
|
class SESSION_INFO_0_ARRAY(NDRUniConformantArray):
|
|
item = SESSION_INFO_0
|
|
|
|
class LPSESSION_INFO_0_ARRAY(NDRPOINTER):
|
|
referent = (
|
|
('Data', SESSION_INFO_0_ARRAY),
|
|
)
|
|
|
|
# 2.2.4.12 SESSION_INFO_1
|
|
class SESSION_INFO_1(NDRSTRUCT):
|
|
structure = (
|
|
('sesi1_cname', LPWSTR),
|
|
('sesi1_username', LPWSTR),
|
|
('sesi1_num_opens', DWORD),
|
|
('sesi1_time', DWORD),
|
|
('sesi1_idle_time', DWORD),
|
|
('sesi1_user_flags', DWORD),
|
|
)
|
|
|
|
class LPSESSION_INFO_1(NDRPOINTER):
|
|
referent = (
|
|
('Data', SESSION_INFO_1),
|
|
)
|
|
|
|
class SESSION_INFO_1_ARRAY(NDRUniConformantArray):
|
|
item = SESSION_INFO_1
|
|
|
|
class LPSESSION_INFO_1_ARRAY(NDRPOINTER):
|
|
referent = (
|
|
('Data', SESSION_INFO_1_ARRAY),
|
|
)
|
|
|
|
# 2.2.4.13 SESSION_INFO_2
|
|
class SESSION_INFO_2(NDRSTRUCT):
|
|
structure = (
|
|
('sesi2_cname', LPWSTR),
|
|
('sesi2_username', LPWSTR),
|
|
('sesi2_num_opens', DWORD),
|
|
('sesi2_time', DWORD),
|
|
('sesi2_idle_time', DWORD),
|
|
('sesi2_user_flags', DWORD),
|
|
('sesi2_cltype_name', LPWSTR),
|
|
)
|
|
|
|
class LPSESSION_INFO_2(NDRPOINTER):
|
|
referent = (
|
|
('Data', SESSION_INFO_2),
|
|
)
|
|
|
|
class SESSION_INFO_2_ARRAY(NDRUniConformantArray):
|
|
item = SESSION_INFO_2
|
|
|
|
class LPSESSION_INFO_2_ARRAY(NDRPOINTER):
|
|
referent = (
|
|
('Data', SESSION_INFO_2_ARRAY),
|
|
)
|
|
|
|
# 2.2.4.14 SESSION_INFO_10
|
|
class SESSION_INFO_10(NDRSTRUCT):
|
|
structure = (
|
|
('sesi10_cname', LPWSTR),
|
|
('sesi10_username', LPWSTR),
|
|
('sesi10_time', DWORD),
|
|
('sesi10_idle_time', DWORD),
|
|
)
|
|
|
|
class LPSESSION_INFO_10(NDRPOINTER):
|
|
referent = (
|
|
('Data', SESSION_INFO_10),
|
|
)
|
|
|
|
class SESSION_INFO_10_ARRAY(NDRUniConformantArray):
|
|
item = SESSION_INFO_10
|
|
|
|
class LPSESSION_INFO_10_ARRAY(NDRPOINTER):
|
|
referent = (
|
|
('Data', SESSION_INFO_10_ARRAY),
|
|
)
|
|
|
|
# 2.2.4.15 SESSION_INFO_502
|
|
class SESSION_INFO_502(NDRSTRUCT):
|
|
structure = (
|
|
('sesi502_cname', LPWSTR),
|
|
('sesi502_username', LPWSTR),
|
|
('sesi502_num_opens', DWORD),
|
|
('sesi502_time', DWORD),
|
|
('sesi502_idle_time', DWORD),
|
|
('sesi502_user_flags', DWORD),
|
|
('sesi502_cltype_name', LPWSTR),
|
|
('sesi502_transport', LPWSTR),
|
|
)
|
|
|
|
class LPSESSION_INFO_502(NDRPOINTER):
|
|
referent = (
|
|
('Data', SESSION_INFO_502),
|
|
)
|
|
|
|
class SESSION_INFO_502_ARRAY(NDRUniConformantArray):
|
|
item = SESSION_INFO_502
|
|
|
|
class LPSESSION_INFO_502_ARRAY(NDRPOINTER):
|
|
referent = (
|
|
('Data', SESSION_INFO_502_ARRAY),
|
|
)
|
|
|
|
# 2.2.4.16 SESSION_INFO_0_CONTAINER
|
|
class SESSION_INFO_0_CONTAINER(NDRSTRUCT):
|
|
structure = (
|
|
('EntriesRead', DWORD),
|
|
('Buffer', LPSESSION_INFO_0_ARRAY),
|
|
)
|
|
|
|
class LPSESSION_INFO_0_CONTAINER(NDRPOINTER):
|
|
referent = (
|
|
('Data', SESSION_INFO_0_CONTAINER),
|
|
)
|
|
|
|
# 2.2.4.17 SESSION_INFO_1_CONTAINER
|
|
class SESSION_INFO_1_CONTAINER(NDRSTRUCT):
|
|
structure = (
|
|
('EntriesRead', DWORD),
|
|
('Buffer', LPSESSION_INFO_1_ARRAY),
|
|
)
|
|
|
|
class LPSESSION_INFO_1_CONTAINER(NDRPOINTER):
|
|
referent = (
|
|
('Data', SESSION_INFO_1_CONTAINER),
|
|
)
|
|
|
|
# 2.2.4.18 SESSION_INFO_2_CONTAINER
|
|
class SESSION_INFO_2_CONTAINER(NDRSTRUCT):
|
|
structure = (
|
|
('EntriesRead', DWORD),
|
|
('Buffer', LPSESSION_INFO_2_ARRAY),
|
|
)
|
|
|
|
class LPSESSION_INFO_2_CONTAINER(NDRPOINTER):
|
|
referent = (
|
|
('Data', SESSION_INFO_2_CONTAINER),
|
|
)
|
|
|
|
# 2.2.4.19 SESSION_INFO_10_CONTAINER
|
|
class SESSION_INFO_10_CONTAINER(NDRSTRUCT):
|
|
structure = (
|
|
('EntriesRead', DWORD),
|
|
('Buffer', LPSESSION_INFO_10_ARRAY),
|
|
)
|
|
|
|
class LPSESSION_INFO_10_CONTAINER(NDRPOINTER):
|
|
referent = (
|
|
('Data', SESSION_INFO_10_CONTAINER),
|
|
)
|
|
|
|
# 2.2.4.20 SESSION_INFO_502_CONTAINER
|
|
class SESSION_INFO_502_CONTAINER(NDRSTRUCT):
|
|
structure = (
|
|
('EntriesRead', DWORD),
|
|
('Buffer', LPSESSION_INFO_502_ARRAY),
|
|
)
|
|
|
|
class LPSESSION_INFO_502_CONTAINER(NDRPOINTER):
|
|
referent = (
|
|
('Data', SESSION_INFO_502_CONTAINER),
|
|
)
|
|
|
|
# 2.2.3.4 SESSION_ENUM_UNION
|
|
class SESSION_ENUM_UNION(NDRUNION):
|
|
commonHdr = (
|
|
('tag', DWORD),
|
|
)
|
|
|
|
union = {
|
|
0: ('Level0', LPSESSION_INFO_0_CONTAINER),
|
|
1: ('Level1', LPSESSION_INFO_1_CONTAINER),
|
|
2: ('Level2', LPSESSION_INFO_2_CONTAINER),
|
|
10: ('Level10', LPSESSION_INFO_10_CONTAINER),
|
|
502: ('Level502', LPSESSION_INFO_502_CONTAINER),
|
|
}
|
|
|
|
# 2.2.4.21 SESSION_ENUM_STRUCT
|
|
class SESSION_ENUM_STRUCT(NDRSTRUCT):
|
|
structure = (
|
|
('Level', DWORD),
|
|
('SessionInfo', SESSION_ENUM_UNION),
|
|
)
|
|
|
|
# 2.2.4.22 SHARE_INFO_0
|
|
class SHARE_INFO_0(NDRSTRUCT):
|
|
structure = (
|
|
('shi0_netname', LPWSTR),
|
|
)
|
|
|
|
class LPSHARE_INFO_0(NDRPOINTER):
|
|
referent = (
|
|
('Data', SHARE_INFO_0),
|
|
)
|
|
|
|
class SHARE_INFO_0_ARRAY(NDRUniConformantArray):
|
|
item = SHARE_INFO_0
|
|
|
|
class LPSHARE_INFO_0_ARRAY(NDRPOINTER):
|
|
referent = (
|
|
('Data', SHARE_INFO_0_ARRAY),
|
|
)
|
|
|
|
# 2.2.4.23 SHARE_INFO_1
|
|
class SHARE_INFO_1(NDRSTRUCT):
|
|
structure = (
|
|
('shi1_netname', LPWSTR),
|
|
('shi1_type', DWORD),
|
|
('shi1_remark', LPWSTR),
|
|
)
|
|
|
|
class LPSHARE_INFO_1(NDRPOINTER):
|
|
referent = (
|
|
('Data', SHARE_INFO_1),
|
|
)
|
|
|
|
class SHARE_INFO_1_ARRAY(NDRUniConformantArray):
|
|
item = SHARE_INFO_1
|
|
|
|
class LPSHARE_INFO_1_ARRAY(NDRPOINTER):
|
|
referent = (
|
|
('Data', SHARE_INFO_1_ARRAY),
|
|
)
|
|
|
|
# 2.2.4.24 SHARE_INFO_2
|
|
class SHARE_INFO_2(NDRSTRUCT):
|
|
structure = (
|
|
('shi2_netname', LPWSTR),
|
|
('shi2_type', DWORD),
|
|
('shi2_remark', LPWSTR),
|
|
('shi2_permissions', DWORD),
|
|
('shi2_max_uses', DWORD),
|
|
('shi2_current_uses', DWORD),
|
|
('shi2_path', LPWSTR),
|
|
('shi2_passwd', LPWSTR),
|
|
)
|
|
|
|
class LPSHARE_INFO_2(NDRPOINTER):
|
|
referent = (
|
|
('Data', SHARE_INFO_2),
|
|
)
|
|
|
|
class SHARE_INFO_2_ARRAY(NDRUniConformantArray):
|
|
item = SHARE_INFO_2
|
|
|
|
class LPSHARE_INFO_2_ARRAY(NDRPOINTER):
|
|
referent = (
|
|
('Data', SHARE_INFO_2_ARRAY),
|
|
)
|
|
|
|
# 2.2.4.25 SHARE_INFO_501
|
|
class SHARE_INFO_501(NDRSTRUCT):
|
|
structure = (
|
|
('shi501_netname', LPWSTR),
|
|
('shi501_type', DWORD),
|
|
('shi501_remark', LPWSTR),
|
|
('shi501_flags', DWORD),
|
|
)
|
|
|
|
class LPSHARE_INFO_501(NDRPOINTER):
|
|
referent = (
|
|
('Data', SHARE_INFO_501),
|
|
)
|
|
|
|
class SHARE_INFO_501_ARRAY(NDRUniConformantArray):
|
|
item = SHARE_INFO_501
|
|
|
|
class LPSHARE_INFO_501_ARRAY(NDRPOINTER):
|
|
referent = (
|
|
('Data', SHARE_INFO_501_ARRAY),
|
|
)
|
|
|
|
# 2.2.4.26 SHARE_INFO_502_I
|
|
class SHARE_INFO_502(NDRSTRUCT):
|
|
structure = (
|
|
('shi502_netname', LPWSTR),
|
|
('shi502_type', DWORD),
|
|
('shi502_remark', LPWSTR),
|
|
('shi502_permissions', DWORD),
|
|
('shi502_max_uses', DWORD),
|
|
('shi502_current_uses', DWORD),
|
|
('shi502_path', LPWSTR),
|
|
('shi502_passwd', LPWSTR),
|
|
('shi502_reserved', DWORD),
|
|
('shi502_security_descriptor', LPBYTE),
|
|
)
|
|
|
|
class LPSHARE_INFO_502(NDRPOINTER):
|
|
referent = (
|
|
('Data', SHARE_INFO_502),
|
|
)
|
|
|
|
class SHARE_INFO_502_ARRAY(NDRUniConformantArray):
|
|
item = SHARE_INFO_502
|
|
|
|
class LPSHARE_INFO_502_ARRAY(NDRPOINTER):
|
|
referent = (
|
|
('Data', SHARE_INFO_502_ARRAY),
|
|
)
|
|
|
|
# 2.2.4.27 SHARE_INFO_503_I
|
|
class SHARE_INFO_503(NDRSTRUCT):
|
|
structure = (
|
|
('shi503_netname', LPWSTR),
|
|
('shi503_type', DWORD),
|
|
('shi503_remark', LPWSTR),
|
|
('shi503_permissions', DWORD),
|
|
('shi503_max_uses', DWORD),
|
|
('shi503_current_uses', DWORD),
|
|
('shi503_path', LPWSTR),
|
|
('shi503_passwd', LPWSTR),
|
|
('shi503_servername', LPWSTR),
|
|
('shi503_reserved', DWORD),
|
|
('shi503_security_descriptor', LPBYTE),
|
|
)
|
|
|
|
class LPSHARE_INFO_503(NDRPOINTER):
|
|
referent = (
|
|
('Data', SHARE_INFO_503),
|
|
)
|
|
|
|
class SHARE_INFO_503_ARRAY(NDRUniConformantArray):
|
|
item = SHARE_INFO_503
|
|
|
|
class LPSHARE_INFO_503_ARRAY(NDRPOINTER):
|
|
referent = (
|
|
('Data', SHARE_INFO_503_ARRAY),
|
|
)
|
|
|
|
# 2.2.4.28 SHARE_INFO_1004
|
|
class SHARE_INFO_1004(NDRSTRUCT):
|
|
structure = (
|
|
('shi1004_remark', LPWSTR),
|
|
)
|
|
|
|
class LPSHARE_INFO_1004(NDRPOINTER):
|
|
referent = (
|
|
('Data', SHARE_INFO_1004),
|
|
)
|
|
|
|
class SHARE_INFO_1004_ARRAY(NDRUniConformantArray):
|
|
item = SHARE_INFO_1004
|
|
|
|
class LPSHARE_INFO_1004_ARRAY(NDRPOINTER):
|
|
referent = (
|
|
('Data', SHARE_INFO_1004_ARRAY),
|
|
)
|
|
|
|
# 2.2.4.29 SHARE_INFO_1005
|
|
class SHARE_INFO_1005(NDRSTRUCT):
|
|
structure = (
|
|
('shi1005_flags', DWORD),
|
|
)
|
|
|
|
class LPSHARE_INFO_1005(NDRPOINTER):
|
|
referent = (
|
|
('Data', SHARE_INFO_1005),
|
|
)
|
|
|
|
class SHARE_INFO_1005_ARRAY(NDRUniConformantArray):
|
|
item = SHARE_INFO_1004
|
|
|
|
class LPSHARE_INFO_1005_ARRAY(NDRPOINTER):
|
|
referent = (
|
|
('Data', SHARE_INFO_1005_ARRAY),
|
|
)
|
|
|
|
# 2.2.4.30 SHARE_INFO_1006
|
|
class SHARE_INFO_1006(NDRSTRUCT):
|
|
structure = (
|
|
('shi1006_max_uses', DWORD),
|
|
)
|
|
|
|
class LPSHARE_INFO_1006(NDRPOINTER):
|
|
referent = (
|
|
('Data', SHARE_INFO_1006),
|
|
)
|
|
|
|
class SHARE_INFO_1006_ARRAY(NDRUniConformantArray):
|
|
item = SHARE_INFO_1006
|
|
|
|
class LPSHARE_INFO_1006_ARRAY(NDRPOINTER):
|
|
referent = (
|
|
('Data', SHARE_INFO_1006_ARRAY),
|
|
)
|
|
|
|
# 2.2.4.31 SHARE_INFO_1501_I
|
|
class SHARE_INFO_1501(NDRSTRUCT):
|
|
structure = (
|
|
('shi1501_reserved', DWORD),
|
|
('shi1501_security_descriptor', NDRUniConformantArray),
|
|
)
|
|
|
|
class LPSHARE_INFO_1501(NDRPOINTER):
|
|
referent = (
|
|
('Data', SHARE_INFO_1501),
|
|
)
|
|
|
|
class SHARE_INFO_1501_ARRAY(NDRUniConformantArray):
|
|
item = SHARE_INFO_1501
|
|
|
|
class LPSHARE_INFO_1501_ARRAY(NDRPOINTER):
|
|
referent = (
|
|
('Data', SHARE_INFO_1501_ARRAY),
|
|
)
|
|
|
|
# 2.2.4.32 SHARE_INFO_0_CONTAINER
|
|
class SHARE_INFO_0_CONTAINER(NDRSTRUCT):
|
|
structure = (
|
|
('EntriesRead', DWORD),
|
|
('Buffer', LPSHARE_INFO_0_ARRAY),
|
|
)
|
|
|
|
class LPSHARE_INFO_0_CONTAINER(NDRPOINTER):
|
|
referent = (
|
|
('Data', SHARE_INFO_0_CONTAINER),
|
|
)
|
|
|
|
# 2.2.4.33 SHARE_INFO_1_CONTAINER
|
|
class SHARE_INFO_1_CONTAINER(NDRSTRUCT):
|
|
structure = (
|
|
('EntriesRead', DWORD),
|
|
('Buffer', LPSHARE_INFO_1_ARRAY),
|
|
)
|
|
|
|
class LPSHARE_INFO_1_CONTAINER(NDRPOINTER):
|
|
referent = (
|
|
('Data', SHARE_INFO_1_CONTAINER),
|
|
)
|
|
|
|
# 2.2.4.34 SHARE_INFO_2_CONTAINER
|
|
class SHARE_INFO_2_CONTAINER(NDRSTRUCT):
|
|
structure = (
|
|
('EntriesRead', DWORD),
|
|
('Buffer', LPSHARE_INFO_2_ARRAY),
|
|
)
|
|
|
|
class LPSHARE_INFO_2_CONTAINER(NDRPOINTER):
|
|
referent = (
|
|
('Data', SHARE_INFO_2_CONTAINER),
|
|
)
|
|
|
|
# 2.2.4.35 SHARE_INFO_501_CONTAINER
|
|
class SHARE_INFO_501_CONTAINER(NDRSTRUCT):
|
|
structure = (
|
|
('EntriesRead', DWORD),
|
|
('Buffer', LPSHARE_INFO_501_ARRAY),
|
|
)
|
|
|
|
class LPSHARE_INFO_501_CONTAINER(NDRPOINTER):
|
|
referent = (
|
|
('Data', SHARE_INFO_501_CONTAINER),
|
|
)
|
|
|
|
# 2.2.4.36 SHARE_INFO_502_CONTAINER
|
|
class SHARE_INFO_502_CONTAINER(NDRSTRUCT):
|
|
structure = (
|
|
('EntriesRead', DWORD),
|
|
('Buffer', LPSHARE_INFO_502_ARRAY),
|
|
)
|
|
|
|
class LPSHARE_INFO_502_CONTAINER(NDRPOINTER):
|
|
referent = (
|
|
('Data', SHARE_INFO_502_CONTAINER),
|
|
)
|
|
|
|
# 2.2.4.37 SHARE_INFO_503_CONTAINER
|
|
class SHARE_INFO_503_CONTAINER(NDRSTRUCT):
|
|
structure = (
|
|
('EntriesRead', DWORD),
|
|
('Buffer', LPSHARE_INFO_503_ARRAY),
|
|
)
|
|
|
|
class LPSHARE_INFO_503_CONTAINER(NDRPOINTER):
|
|
referent = (
|
|
('Data', SHARE_INFO_503_CONTAINER),
|
|
)
|
|
|
|
# 2.2.3.5 SHARE_ENUM_UNION
|
|
class SHARE_ENUM_UNION(NDRUNION):
|
|
commonHdr = (
|
|
('tag', DWORD),
|
|
)
|
|
|
|
union = {
|
|
0: ('Level0', LPSHARE_INFO_0_CONTAINER),
|
|
1: ('Level1', LPSHARE_INFO_1_CONTAINER),
|
|
2: ('Level2', LPSHARE_INFO_2_CONTAINER),
|
|
501: ('Level501', LPSHARE_INFO_501_CONTAINER),
|
|
502: ('Level502', LPSHARE_INFO_502_CONTAINER),
|
|
503: ('Level503', LPSHARE_INFO_503_CONTAINER),
|
|
}
|
|
|
|
# 2.2.4.38 SHARE_ENUM_STRUCT
|
|
class SHARE_ENUM_STRUCT(NDRSTRUCT):
|
|
structure = (
|
|
('Level', DWORD),
|
|
('ShareInfo', SHARE_ENUM_UNION),
|
|
)
|
|
|
|
# 2.2.4.39 STAT_SERVER_0
|
|
class STAT_SERVER_0(NDRSTRUCT):
|
|
structure = (
|
|
('sts0_start', DWORD),
|
|
('sts0_fopens', DWORD),
|
|
('sts0_devopens', DWORD),
|
|
('sts0_jobsqueued', DWORD),
|
|
('sts0_sopens', DWORD),
|
|
('sts0_stimedout', DWORD),
|
|
('sts0_serrorout', DWORD),
|
|
('sts0_pwerrors', DWORD),
|
|
('sts0_permerrors', DWORD),
|
|
('sts0_syserrors', DWORD),
|
|
('sts0_bytessent_low', DWORD),
|
|
('sts0_bytessent_high', DWORD),
|
|
('sts0_bytesrcvd_low', DWORD),
|
|
('sts0_bytesrcvd_high', DWORD),
|
|
('sts0_avresponse', DWORD),
|
|
('sts0_reqbufneed', DWORD),
|
|
('sts0_bigbufneed', DWORD),
|
|
)
|
|
|
|
class LPSTAT_SERVER_0(NDRPOINTER):
|
|
referent = (
|
|
('Data', STAT_SERVER_0),
|
|
)
|
|
|
|
# 2.2.4.40 SERVER_INFO_100
|
|
class SERVER_INFO_100(NDRSTRUCT):
|
|
structure = (
|
|
('sv100_platform_id', DWORD),
|
|
('sv100_name', LPWSTR),
|
|
)
|
|
|
|
class LPSERVER_INFO_100(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_100),
|
|
)
|
|
|
|
# 2.2.4.41 SERVER_INFO_101
|
|
class SERVER_INFO_101(NDRSTRUCT):
|
|
structure = (
|
|
('sv101_platform_id', DWORD),
|
|
('sv101_name', LPWSTR),
|
|
('sv101_version_major', DWORD),
|
|
('sv101_version_minor', DWORD),
|
|
('sv101_type', DWORD),
|
|
('sv101_comment', LPWSTR),
|
|
)
|
|
|
|
class LPSERVER_INFO_101(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_101),
|
|
)
|
|
|
|
# 2.2.4.42 SERVER_INFO_102
|
|
class SERVER_INFO_102(NDRSTRUCT):
|
|
structure = (
|
|
('sv102_platform_id', DWORD),
|
|
('sv102_name', LPWSTR),
|
|
('sv102_version_major', DWORD),
|
|
('sv102_version_minor', DWORD),
|
|
('sv102_type', DWORD),
|
|
('sv102_comment', LPWSTR),
|
|
('sv102_users', DWORD),
|
|
('sv102_disc', DWORD),
|
|
('sv102_hidden', DWORD),
|
|
('sv102_announce', DWORD),
|
|
('sv102_anndelta', DWORD),
|
|
('sv102_licenses', DWORD),
|
|
('sv102_userpath', LPWSTR),
|
|
)
|
|
|
|
class LPSERVER_INFO_102(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_102),
|
|
)
|
|
|
|
# 2.2.4.43 SERVER_INFO_103
|
|
class SERVER_INFO_103(NDRSTRUCT):
|
|
structure = (
|
|
('sv103_platform_id', DWORD),
|
|
('sv103_name', LPWSTR),
|
|
('sv103_version_major', DWORD),
|
|
('sv103_version_minor', DWORD),
|
|
('sv103_type', DWORD),
|
|
('sv103_comment', LPWSTR),
|
|
('sv103_users', DWORD),
|
|
('sv103_disc', DWORD),
|
|
('sv103_hidden', DWORD),
|
|
('sv103_announce', DWORD),
|
|
('sv103_anndelta', DWORD),
|
|
('sv103_licenses', DWORD),
|
|
('sv103_userpath', LPWSTR),
|
|
('sv103_capabilities', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_103(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_103),
|
|
)
|
|
|
|
# 2.2.4.44 SERVER_INFO_502
|
|
class SERVER_INFO_502(NDRSTRUCT):
|
|
structure = (
|
|
('sv502_sessopens', DWORD),
|
|
('sv502_sessvcs', DWORD),
|
|
('sv502_opensearch', DWORD),
|
|
('sv502_sizreqbuf', DWORD),
|
|
('sv502_initworkitems', DWORD),
|
|
('sv502_maxworkitems', DWORD),
|
|
('sv502_rawworkitems', DWORD),
|
|
('sv502_irpstacksize', DWORD),
|
|
('sv502_maxrawbuflen', DWORD),
|
|
('sv502_sessusers', DWORD),
|
|
('sv502_sessconns', DWORD),
|
|
('sv502_maxpagedmemoryusage', DWORD),
|
|
('sv502_maxnonpagedmemoryusage', DWORD),
|
|
('sv502_enablesoftcompat', DWORD),
|
|
('sv502_enableforcedlogoff', DWORD),
|
|
('sv502_timesource', DWORD),
|
|
('sv502_acceptdownlevelapis', DWORD),
|
|
('sv502_lmannounce', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_502(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_502),
|
|
)
|
|
|
|
# 2.2.4.45 SERVER_INFO_503
|
|
class SERVER_INFO_503(NDRSTRUCT):
|
|
structure = (
|
|
('sv503_sessopens', DWORD),
|
|
('sv503_sessvcs', DWORD),
|
|
('sv503_opensearch', DWORD),
|
|
('sv503_sizreqbuf', DWORD),
|
|
('sv503_initworkitems', DWORD),
|
|
('sv503_maxworkitems', DWORD),
|
|
('sv503_rawworkitems', DWORD),
|
|
('sv503_irpstacksize', DWORD),
|
|
('sv503_maxrawbuflen', DWORD),
|
|
('sv503_sessusers', DWORD),
|
|
('sv503_sessconns', DWORD),
|
|
('sv503_maxpagedmemoryusage', DWORD),
|
|
('sv503_maxnonpagedmemoryusage', DWORD),
|
|
('sv503_enablesoftcompat', DWORD),
|
|
('sv503_enableforcedlogoff', DWORD),
|
|
('sv503_timesource', DWORD),
|
|
('sv503_acceptdownlevelapis', DWORD),
|
|
('sv503_lmannounce', DWORD),
|
|
('sv503_domain', LPWSTR),
|
|
('sv503_maxcopyreadlen', DWORD),
|
|
('sv503_maxcopywritelen', DWORD),
|
|
('sv503_minkeepsearch', DWORD),
|
|
('sv503_maxkeepsearch', DWORD),
|
|
('sv503_minkeepcomplsearch', DWORD),
|
|
('sv503_maxkeepcomplsearch', DWORD),
|
|
('sv503_threadcountadd', DWORD),
|
|
('sv503_numblockthreads', DWORD),
|
|
('sv503_scavtimeout', DWORD),
|
|
('sv503_minrcvqueue', DWORD),
|
|
('sv503_minfreeworkitems', DWORD),
|
|
('sv503_xactmemsize', DWORD),
|
|
('sv503_threadpriority', DWORD),
|
|
('sv503_maxmpxct', DWORD),
|
|
('sv503_oplockbreakwait', DWORD),
|
|
('sv503_oplockbreakresponsewait', DWORD),
|
|
('sv503_enableoplocks', DWORD),
|
|
('sv503_enableoplockforceclose', DWORD),
|
|
('sv503_enablefcbopens', DWORD),
|
|
('sv503_enableraw', DWORD),
|
|
('sv503_enablesharednetdrives', DWORD),
|
|
('sv503_minfreeconnections', DWORD),
|
|
('sv503_maxfreeconnections', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_503(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_503),
|
|
)
|
|
|
|
# 2.2.4.46 SERVER_INFO_599
|
|
class SERVER_INFO_599(NDRSTRUCT):
|
|
structure = (
|
|
('sv599_sessopens', DWORD),
|
|
('sv599_sessvcs', DWORD),
|
|
('sv599_opensearch', DWORD),
|
|
('sv599_sizreqbuf', DWORD),
|
|
('sv599_initworkitems', DWORD),
|
|
('sv599_maxworkitems', DWORD),
|
|
('sv599_rawworkitems', DWORD),
|
|
('sv599_irpstacksize', DWORD),
|
|
('sv599_maxrawbuflen', DWORD),
|
|
('sv599_sessusers', DWORD),
|
|
('sv599_sessconns', DWORD),
|
|
('sv599_maxpagedmemoryusage', DWORD),
|
|
('sv599_maxnonpagedmemoryusage', DWORD),
|
|
('sv599_enablesoftcompat', DWORD),
|
|
('sv599_enableforcedlogoff', DWORD),
|
|
('sv599_timesource', DWORD),
|
|
('sv599_acceptdownlevelapis', DWORD),
|
|
('sv599_lmannounce', DWORD),
|
|
('sv599_domain', LPWSTR),
|
|
('sv599_maxcopyreadlen', DWORD),
|
|
('sv599_maxcopywritelen', DWORD),
|
|
('sv599_minkeepsearch', DWORD),
|
|
('sv599_maxkeepsearch', DWORD),
|
|
('sv599_minkeepcomplsearch', DWORD),
|
|
('sv599_maxkeepcomplsearch', DWORD),
|
|
('sv599_threadcountadd', DWORD),
|
|
('sv599_numblockthreads', DWORD),
|
|
('sv599_scavtimeout', DWORD),
|
|
('sv599_minrcvqueue', DWORD),
|
|
('sv599_minfreeworkitems', DWORD),
|
|
('sv599_xactmemsize', DWORD),
|
|
('sv599_threadpriority', DWORD),
|
|
('sv599_maxmpxct', DWORD),
|
|
('sv599_oplockbreakwait', DWORD),
|
|
('sv599_oplockbreakresponsewait', DWORD),
|
|
('sv599_enableoplocks', DWORD),
|
|
('sv599_enableoplockforceclose', DWORD),
|
|
('sv599_enablefcbopens', DWORD),
|
|
('sv599_enableraw', DWORD),
|
|
('sv599_enablesharednetdrives', DWORD),
|
|
('sv599_minfreeconnections', DWORD),
|
|
('sv599_maxfreeconnections', DWORD),
|
|
('sv599_initsesstable', DWORD),
|
|
('sv599_initconntable', DWORD),
|
|
('sv599_initfiletable', DWORD),
|
|
('sv599_initsearchtable', DWORD),
|
|
('sv599_alertschedule', DWORD),
|
|
('sv599_errorthreshold', DWORD),
|
|
('sv599_networkerrorthreshold', DWORD),
|
|
('sv599_diskspacethreshold', DWORD),
|
|
('sv599_reserved', DWORD),
|
|
('sv599_maxlinkdelay', DWORD),
|
|
('sv599_minlinkthroughput', DWORD),
|
|
('sv599_linkinfovalidtime', DWORD),
|
|
('sv599_scavqosinfoupdatetime', DWORD),
|
|
('sv599_maxworkitemidletime', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_599(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_599),
|
|
)
|
|
|
|
# 2.2.4.47 SERVER_INFO_1005
|
|
class SERVER_INFO_1005(NDRSTRUCT):
|
|
structure = (
|
|
('sv1005_comment', LPWSTR),
|
|
)
|
|
|
|
class LPSERVER_INFO_1005(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1005),
|
|
)
|
|
|
|
# 2.2.4.48 SERVER_INFO_1107
|
|
class SERVER_INFO_1107(NDRSTRUCT):
|
|
structure = (
|
|
('sv1107_users', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1107(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1107),
|
|
)
|
|
|
|
# 2.2.4.49 SERVER_INFO_1010
|
|
class SERVER_INFO_1010(NDRSTRUCT):
|
|
structure = (
|
|
('sv1010_disc', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1010(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1010),
|
|
)
|
|
|
|
# 2.2.4.50 SERVER_INFO_1016
|
|
class SERVER_INFO_1016(NDRSTRUCT):
|
|
structure = (
|
|
('sv1016_hidden', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1016(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1016),
|
|
)
|
|
|
|
# 2.2.4.51 SERVER_INFO_1017
|
|
class SERVER_INFO_1017(NDRSTRUCT):
|
|
structure = (
|
|
('sv1017_announce', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1017(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1017),
|
|
)
|
|
|
|
# 2.2.4.52 SERVER_INFO_1018
|
|
class SERVER_INFO_1018(NDRSTRUCT):
|
|
structure = (
|
|
('sv1018_anndelta', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1018(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1018),
|
|
)
|
|
|
|
# 2.2.4.53 SERVER_INFO_1501
|
|
class SERVER_INFO_1501(NDRSTRUCT):
|
|
structure = (
|
|
('sv1501_sessopens', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1501(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1501),
|
|
)
|
|
|
|
# 2.2.4.54 SERVER_INFO_1502
|
|
class SERVER_INFO_1502(NDRSTRUCT):
|
|
structure = (
|
|
('sv1502_sessvcs', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1502(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1502),
|
|
)
|
|
|
|
# 2.2.4.55 SERVER_INFO_1503
|
|
class SERVER_INFO_1503(NDRSTRUCT):
|
|
structure = (
|
|
('sv1503_opensearch', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1503(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1503),
|
|
)
|
|
|
|
# 2.2.4.56 SERVER_INFO_1506
|
|
class SERVER_INFO_1506(NDRSTRUCT):
|
|
structure = (
|
|
('sv1506_maxworkitems', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1506(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1506),
|
|
)
|
|
|
|
# 2.2.4.57 SERVER_INFO_1510
|
|
class SERVER_INFO_1510(NDRSTRUCT):
|
|
structure = (
|
|
('sv1510_sessusers', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1510(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1510),
|
|
)
|
|
|
|
# 2.2.4.58 SERVER_INFO_1511
|
|
class SERVER_INFO_1511(NDRSTRUCT):
|
|
structure = (
|
|
('sv1511_sessconns', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1511(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1511),
|
|
)
|
|
|
|
# 2.2.4.59 SERVER_INFO_1512
|
|
class SERVER_INFO_1512(NDRSTRUCT):
|
|
structure = (
|
|
('sv1512_maxnonpagedmemoryusage', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1512(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1512),
|
|
)
|
|
|
|
# 2.2.4.60 SERVER_INFO_1513
|
|
class SERVER_INFO_1513(NDRSTRUCT):
|
|
structure = (
|
|
('sv1513_maxpagedmemoryusage', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1513(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1513),
|
|
)
|
|
|
|
# 2.2.4.61 SERVER_INFO_1514
|
|
class SERVER_INFO_1514(NDRSTRUCT):
|
|
structure = (
|
|
('sv1514_enablesoftcompat', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1514(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1514),
|
|
)
|
|
|
|
# 2.2.4.62 SERVER_INFO_1515
|
|
class SERVER_INFO_1515(NDRSTRUCT):
|
|
structure = (
|
|
('sv1515_enableforcedlogoff', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1515(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1515),
|
|
)
|
|
|
|
# 2.2.4.63 SERVER_INFO_1516
|
|
class SERVER_INFO_1516(NDRSTRUCT):
|
|
structure = (
|
|
('sv1516_timesource', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1516(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1516),
|
|
)
|
|
|
|
# 2.2.4.64 SERVER_INFO_1518
|
|
class SERVER_INFO_1518(NDRSTRUCT):
|
|
structure = (
|
|
('sv1518_lmannounce', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1518(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1518),
|
|
)
|
|
|
|
# 2.2.4.65 SERVER_INFO_1523
|
|
class SERVER_INFO_1523(NDRSTRUCT):
|
|
structure = (
|
|
('sv1523_maxkeepsearch', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1523(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1523),
|
|
)
|
|
|
|
# 2.2.4.66 SERVER_INFO_1528
|
|
class SERVER_INFO_1528(NDRSTRUCT):
|
|
structure = (
|
|
('sv1528_scavtimeout', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1528(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1528),
|
|
)
|
|
|
|
# 2.2.4.67 SERVER_INFO_1529
|
|
class SERVER_INFO_1529(NDRSTRUCT):
|
|
structure = (
|
|
('sv1529_minrcvqueue', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1529(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1529),
|
|
)
|
|
|
|
# 2.2.4.68 SERVER_INFO_1530
|
|
class SERVER_INFO_1530(NDRSTRUCT):
|
|
structure = (
|
|
('sv1530_minfreeworkitems', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1530(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1530),
|
|
)
|
|
|
|
# 2.2.4.69 SERVER_INFO_1533
|
|
class SERVER_INFO_1533(NDRSTRUCT):
|
|
structure = (
|
|
('sv1533_maxmpxct', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1533(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1533),
|
|
)
|
|
|
|
# 2.2.4.70 SERVER_INFO_1534
|
|
class SERVER_INFO_1534(NDRSTRUCT):
|
|
structure = (
|
|
('sv1534_oplockbreakwait', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1534(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1534),
|
|
)
|
|
|
|
# 2.2.4.71 SERVER_INFO_1535
|
|
class SERVER_INFO_1535(NDRSTRUCT):
|
|
structure = (
|
|
('sv1535_oplockbreakresponsewait', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1535(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1535),
|
|
)
|
|
|
|
# 2.2.4.72 SERVER_INFO_1536
|
|
class SERVER_INFO_1536(NDRSTRUCT):
|
|
structure = (
|
|
('sv1536_enableoplocks', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1536(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1536),
|
|
)
|
|
|
|
# 2.2.4.73 SERVER_INFO_1538
|
|
class SERVER_INFO_1538(NDRSTRUCT):
|
|
structure = (
|
|
('sv1538_enablefcbopens', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1538(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1538),
|
|
)
|
|
|
|
# 2.2.4.74 SERVER_INFO_1539
|
|
class SERVER_INFO_1539(NDRSTRUCT):
|
|
structure = (
|
|
('sv1539_enableraw', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1539(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1539),
|
|
)
|
|
|
|
# 2.2.4.75 SERVER_INFO_1540
|
|
class SERVER_INFO_1540(NDRSTRUCT):
|
|
structure = (
|
|
('sv1540_enablesharednetdrives', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1540(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1540),
|
|
)
|
|
|
|
# 2.2.4.76 SERVER_INFO_1541
|
|
class SERVER_INFO_1541(NDRSTRUCT):
|
|
structure = (
|
|
('sv1541_minfreeconnections', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1541(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1541),
|
|
)
|
|
|
|
# 2.2.4.77 SERVER_INFO_1542
|
|
class SERVER_INFO_1542(NDRSTRUCT):
|
|
structure = (
|
|
('sv1542_maxfreeconnections', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1542(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1542),
|
|
)
|
|
|
|
# 2.2.4.78 SERVER_INFO_1543
|
|
class SERVER_INFO_1543(NDRSTRUCT):
|
|
structure = (
|
|
('sv1543_initsesstable', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1543(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1543),
|
|
)
|
|
|
|
# 2.2.4.79 SERVER_INFO_1544
|
|
class SERVER_INFO_1544(NDRSTRUCT):
|
|
structure = (
|
|
('sv1544_initconntable', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1544(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1544),
|
|
)
|
|
|
|
# 2.2.4.80 SERVER_INFO_1545
|
|
class SERVER_INFO_1545(NDRSTRUCT):
|
|
structure = (
|
|
('sv1545_initfiletable', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1545(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1545),
|
|
)
|
|
|
|
# 2.2.4.81 SERVER_INFO_1546
|
|
class SERVER_INFO_1546(NDRSTRUCT):
|
|
structure = (
|
|
('sv1546_initsearchtable', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1546(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1546),
|
|
)
|
|
|
|
# 2.2.4.82 SERVER_INFO_1547
|
|
class SERVER_INFO_1547(NDRSTRUCT):
|
|
structure = (
|
|
('sv1547_alertschedule', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1547(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1547),
|
|
)
|
|
|
|
# 2.2.4.83 SERVER_INFO_1548
|
|
class SERVER_INFO_1548(NDRSTRUCT):
|
|
structure = (
|
|
('sv1548_errorthreshold', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1548(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1548),
|
|
)
|
|
|
|
# 2.2.4.84 SERVER_INFO_1549
|
|
class SERVER_INFO_1549(NDRSTRUCT):
|
|
structure = (
|
|
('sv1549_networkerrorthreshold', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1549(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1549),
|
|
)
|
|
|
|
# 2.2.4.85 SERVER_INFO_1550
|
|
class SERVER_INFO_1550(NDRSTRUCT):
|
|
structure = (
|
|
('sv1550_diskspacethreshold', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1550(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1550),
|
|
)
|
|
|
|
# 2.2.4.86 SERVER_INFO_1552
|
|
class SERVER_INFO_1552(NDRSTRUCT):
|
|
structure = (
|
|
('sv1552_maxlinkdelay', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1552(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1552),
|
|
)
|
|
|
|
# 2.2.4.87 SERVER_INFO_1553
|
|
class SERVER_INFO_1553(NDRSTRUCT):
|
|
structure = (
|
|
('sv1553_minlinkthroughput', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1553(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1553),
|
|
)
|
|
|
|
# 2.2.4.88 SERVER_INFO_1554
|
|
class SERVER_INFO_1554(NDRSTRUCT):
|
|
structure = (
|
|
('sv1554_linkinfovalidtime', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1554(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1554),
|
|
)
|
|
|
|
# 2.2.4.89 SERVER_INFO_1555
|
|
class SERVER_INFO_1555(NDRSTRUCT):
|
|
structure = (
|
|
('sv1555_scavqosinfoupdatetime', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1555(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1555),
|
|
)
|
|
|
|
# 2.2.4.90 SERVER_INFO_1556
|
|
class SERVER_INFO_1556(NDRSTRUCT):
|
|
structure = (
|
|
('sv1556_maxworkitemidletime', DWORD),
|
|
)
|
|
|
|
class LPSERVER_INFO_1556(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_INFO_1556),
|
|
)
|
|
|
|
# 2.2.4.91 DISK_INFO
|
|
class WCHAR_ARRAY(NDRSTRUCT):
|
|
commonHdr = (
|
|
('Offset','<L=0'),
|
|
('ActualCount','<L=len(Data)//2'),
|
|
)
|
|
commonHdr64 = (
|
|
('Offset','<Q=0'),
|
|
('ActualCount','<Q=len(Data)//2'),
|
|
)
|
|
structure = (
|
|
('Data',':'),
|
|
)
|
|
|
|
def dump(self, msg = None, indent = 0):
|
|
if msg is None:
|
|
msg = self.__class__.__name__
|
|
if msg != '':
|
|
print("%s" % msg, end=' ')
|
|
# Here just print the data
|
|
print(" %r" % (self['Data']), end=' ')
|
|
|
|
def __setitem__(self, key, value):
|
|
if key == 'Data':
|
|
try:
|
|
self.fields[key] = value.encode('utf-16le')
|
|
except UnicodeDecodeError:
|
|
import sys
|
|
self.fields[key] = value.decode(sys.getfilesystemencoding()).encode('utf-16le')
|
|
self.fields['ActualCount'] = None
|
|
self.data = None # force recompute
|
|
else:
|
|
return NDR.__setitem__(self, key, value)
|
|
|
|
def __getitem__(self, key):
|
|
if key == 'Data':
|
|
return self.fields[key].decode('utf-16le')
|
|
else:
|
|
return NDR.__getitem__(self,key)
|
|
|
|
def getDataLen(self, data, offset=0):
|
|
return self["ActualCount"]*2
|
|
|
|
|
|
class DISK_INFO(NDRSTRUCT):
|
|
structure = (
|
|
('Disk', WCHAR_ARRAY),
|
|
)
|
|
|
|
class LPDISK_INFO(NDRPOINTER):
|
|
referent = (
|
|
('Data', DISK_INFO),
|
|
)
|
|
|
|
class DISK_INFO_ARRAY(NDRUniConformantVaryingArray):
|
|
item = DISK_INFO
|
|
|
|
class LPDISK_INFO_ARRAY(NDRPOINTER):
|
|
referent = (
|
|
('Data', DISK_INFO_ARRAY),
|
|
)
|
|
|
|
# 2.2.4.92 DISK_ENUM_CONTAINER
|
|
class DISK_ENUM_CONTAINER(NDRSTRUCT):
|
|
structure = (
|
|
('EntriesRead', DWORD),
|
|
('Buffer', LPDISK_INFO_ARRAY),
|
|
)
|
|
|
|
class LPDISK_ENUM_CONTAINER(NDRPOINTER):
|
|
referent = (
|
|
('Data', DISK_ENUM_CONTAINER),
|
|
)
|
|
|
|
# 2.2.4.93 SERVER_TRANSPORT_INFO_0
|
|
class SERVER_TRANSPORT_INFO_0(NDRSTRUCT):
|
|
structure = (
|
|
('svti0_numberofvcs', DWORD),
|
|
('svti0_transportname', LPWSTR),
|
|
('svti0_transportaddress', PNDRUniConformantArray),
|
|
('svti0_transportaddresslength', DWORD),
|
|
('svti0_networkaddress', LPWSTR),
|
|
)
|
|
|
|
class LPSERVER_TRANSPORT_INFO_0(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_TRANSPORT_INFO_0),
|
|
)
|
|
|
|
class SERVER_TRANSPORT_INFO_0_ARRAY(NDRUniConformantArray):
|
|
item = SERVER_TRANSPORT_INFO_0
|
|
|
|
class LPSERVER_TRANSPORT_INFO_0_ARRAY(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_TRANSPORT_INFO_0_ARRAY),
|
|
)
|
|
|
|
# 2.2.4.94 SERVER_TRANSPORT_INFO_1
|
|
class SERVER_TRANSPORT_INFO_1(NDRSTRUCT):
|
|
structure = (
|
|
('svti1_numberofvcs', DWORD),
|
|
('svti1_transportname', LPWSTR),
|
|
('svti1_transportaddress', PNDRUniConformantArray),
|
|
('svti1_transportaddresslength', DWORD),
|
|
('svti1_networkaddress', LPWSTR),
|
|
('svti1_domain', LPWSTR),
|
|
)
|
|
|
|
class LPSERVER_TRANSPORT_INFO_1(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_TRANSPORT_INFO_1),
|
|
)
|
|
|
|
class SERVER_TRANSPORT_INFO_1_ARRAY(NDRUniConformantArray):
|
|
item = SERVER_TRANSPORT_INFO_1
|
|
|
|
class LPSERVER_TRANSPORT_INFO_1_ARRAY(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_TRANSPORT_INFO_1_ARRAY),
|
|
)
|
|
|
|
# 2.2.4.95 SERVER_TRANSPORT_INFO_2
|
|
class SERVER_TRANSPORT_INFO_2(NDRSTRUCT):
|
|
structure = (
|
|
('svti2_numberofvcs', DWORD),
|
|
('svti2_transportname', LPWSTR),
|
|
('svti2_transportaddress', PNDRUniConformantArray),
|
|
('svti2_transportaddresslength', DWORD),
|
|
('svti2_networkaddress', LPWSTR),
|
|
('svti2_domain', LPWSTR),
|
|
('svti2_flags', DWORD),
|
|
)
|
|
|
|
class LPSERVER_TRANSPORT_INFO_2(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_TRANSPORT_INFO_2),
|
|
)
|
|
|
|
class SERVER_TRANSPORT_INFO_2_ARRAY(NDRUniConformantArray):
|
|
item = SERVER_TRANSPORT_INFO_2
|
|
|
|
class LPSERVER_TRANSPORT_INFO_2_ARRAY(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_TRANSPORT_INFO_2_ARRAY),
|
|
)
|
|
|
|
# 2.2.4.96 SERVER_TRANSPORT_INFO_3
|
|
class PASSWORD_ARRAY(NDRUniFixedArray):
|
|
def getDataLen(self, data, offset=0):
|
|
return 256
|
|
|
|
class SERVER_TRANSPORT_INFO_3(NDRSTRUCT):
|
|
structure = (
|
|
('svti3_numberofvcs', DWORD),
|
|
('svti3_transportname', LPWSTR),
|
|
('svti3_transportaddress', PNDRUniConformantArray),
|
|
('svti3_transportaddresslength', DWORD),
|
|
('svti3_networkaddress', LPWSTR),
|
|
('svti3_domain', LPWSTR),
|
|
('svti3_flags', DWORD),
|
|
('svti3_passwordlength', DWORD),
|
|
('svti3_password', PASSWORD_ARRAY),
|
|
)
|
|
|
|
class LPSERVER_TRANSPORT_INFO_3(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_TRANSPORT_INFO_3),
|
|
)
|
|
|
|
class SERVER_TRANSPORT_INFO_3_ARRAY(NDRUniConformantArray):
|
|
item = SERVER_TRANSPORT_INFO_3
|
|
|
|
class LPSERVER_TRANSPORT_INFO_3_ARRAY(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_TRANSPORT_INFO_3_ARRAY),
|
|
)
|
|
|
|
# 2.2.4.97 SERVER_XPORT_INFO_0_CONTAINER
|
|
class SERVER_XPORT_INFO_0_CONTAINER(NDRSTRUCT):
|
|
structure = (
|
|
('EntriesRead', DWORD),
|
|
('Buffer', LPSERVER_TRANSPORT_INFO_0_ARRAY),
|
|
)
|
|
|
|
class LPSERVER_XPORT_INFO_0_CONTAINER(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_XPORT_INFO_0_CONTAINER),
|
|
)
|
|
|
|
# 2.2.4.98 SERVER_XPORT_INFO_1_CONTAINER
|
|
class SERVER_XPORT_INFO_1_CONTAINER(NDRSTRUCT):
|
|
structure = (
|
|
('EntriesRead', DWORD),
|
|
('Buffer', LPSERVER_TRANSPORT_INFO_1_ARRAY),
|
|
)
|
|
|
|
class LPSERVER_XPORT_INFO_1_CONTAINER(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_XPORT_INFO_1_CONTAINER),
|
|
)
|
|
|
|
# 2.2.4.99 SERVER_XPORT_INFO_2_CONTAINER
|
|
class SERVER_XPORT_INFO_2_CONTAINER(NDRSTRUCT):
|
|
structure = (
|
|
('EntriesRead', DWORD),
|
|
('Buffer', LPSERVER_TRANSPORT_INFO_2_ARRAY),
|
|
)
|
|
|
|
class LPSERVER_XPORT_INFO_2_CONTAINER(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_XPORT_INFO_2_CONTAINER),
|
|
)
|
|
|
|
# 2.2.4.100 SERVER_XPORT_INFO_3_CONTAINER
|
|
class SERVER_XPORT_INFO_3_CONTAINER(NDRSTRUCT):
|
|
structure = (
|
|
('EntriesRead', DWORD),
|
|
('Buffer', LPSERVER_TRANSPORT_INFO_3_ARRAY),
|
|
)
|
|
|
|
class LPSERVER_XPORT_INFO_3_CONTAINER(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_XPORT_INFO_3_CONTAINER),
|
|
)
|
|
|
|
# 2.2.3.8 SERVER_XPORT_ENUM_UNION
|
|
class SERVER_XPORT_ENUM_UNION(NDRUNION):
|
|
commonHdr = (
|
|
('tag', DWORD),
|
|
)
|
|
|
|
union = {
|
|
0: ('Level0', LPSERVER_XPORT_INFO_0_CONTAINER),
|
|
1: ('Level1', LPSERVER_XPORT_INFO_1_CONTAINER),
|
|
2: ('Level2', LPSERVER_XPORT_INFO_2_CONTAINER),
|
|
3: ('Level3', LPSERVER_XPORT_INFO_3_CONTAINER),
|
|
}
|
|
|
|
# 2.2.4.101 SERVER_XPORT_ENUM_STRUCT
|
|
class SERVER_XPORT_ENUM_STRUCT(NDRSTRUCT):
|
|
structure = (
|
|
('Level', DWORD),
|
|
('XportInfo', SERVER_XPORT_ENUM_UNION),
|
|
)
|
|
|
|
# 2.2.4.102 SERVER_ALIAS_INFO_0
|
|
class SERVER_ALIAS_INFO_0(NDRSTRUCT):
|
|
structure = (
|
|
('srvai0_alias', LMSTR),
|
|
('srvai0_target', LMSTR),
|
|
('srvai0_default', NDRBOOLEAN),
|
|
('srvai0_reserved', ULONG),
|
|
)
|
|
|
|
class LPSERVER_ALIAS_INFO_0(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_ALIAS_INFO_0),
|
|
)
|
|
|
|
class SERVER_ALIAS_INFO_0_ARRAY(NDRUniConformantArray):
|
|
item = SERVER_ALIAS_INFO_0
|
|
|
|
class LPSERVER_ALIAS_INFO_0_ARRAY(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_ALIAS_INFO_0_ARRAY),
|
|
)
|
|
|
|
# 2.2.4.103 SERVER_ALIAS_INFO_0_CONTAINER
|
|
class SERVER_ALIAS_INFO_0_CONTAINER(NDRSTRUCT):
|
|
structure = (
|
|
('EntriesRead', DWORD),
|
|
('Buffer', LPSERVER_ALIAS_INFO_0_ARRAY),
|
|
)
|
|
|
|
class LPSERVER_ALIAS_INFO_0_CONTAINER(NDRPOINTER):
|
|
referent = (
|
|
('Data', SERVER_ALIAS_INFO_0_CONTAINER),
|
|
)
|
|
|
|
# 2.2.4.104 SERVER_ALIAS_ENUM_STRUCT
|
|
class SERVER_ALIAS_ENUM_UNION(NDRUNION):
|
|
commonHdr = (
|
|
('tag', DWORD),
|
|
)
|
|
|
|
union = {
|
|
0: ('Level0', LPSERVER_ALIAS_INFO_0_CONTAINER),
|
|
}
|
|
|
|
class SERVER_ALIAS_ENUM_STRUCT(NDRSTRUCT):
|
|
structure = (
|
|
('Level', DWORD),
|
|
('ServerAliasInfo', SERVER_ALIAS_ENUM_UNION),
|
|
)
|
|
|
|
# 2.2.4.105 TIME_OF_DAY_INFO
|
|
class TIME_OF_DAY_INFO(NDRSTRUCT):
|
|
structure = (
|
|
('tod_elapsedt', DWORD),
|
|
('tod_msecs', DWORD),
|
|
('tod_hours', DWORD),
|
|
('tod_mins', DWORD),
|
|
('tod_secs', DWORD),
|
|
('tod_hunds', DWORD),
|
|
('tod_timezone', DWORD),
|
|
('tod_tinterval', DWORD),
|
|
('tod_day', DWORD),
|
|
('tod_month', DWORD),
|
|
('tod_year', DWORD),
|
|
('tod_weekday', DWORD),
|
|
)
|
|
|
|
class LPTIME_OF_DAY_INFO(NDRPOINTER):
|
|
referent = (
|
|
('Data', TIME_OF_DAY_INFO),
|
|
)
|
|
|
|
# 2.2.4.106 ADT_SECURITY_DESCRIPTOR
|
|
class ADT_SECURITY_DESCRIPTOR(NDRSTRUCT):
|
|
structure = (
|
|
('Length', DWORD),
|
|
('Buffer', PNDRUniConformantArray),
|
|
)
|
|
|
|
class PADT_SECURITY_DESCRIPTOR(NDRPOINTER):
|
|
referent = (
|
|
('Data', ADT_SECURITY_DESCRIPTOR),
|
|
)
|
|
|
|
# 2.2.4.107 NET_DFS_ENTRY_ID
|
|
class NET_DFS_ENTRY_ID(NDRSTRUCT):
|
|
structure = (
|
|
('Uid', GUID),
|
|
('Prefix', LPWSTR),
|
|
)
|
|
|
|
class NET_DFS_ENTRY_ID_ARRAY(NDRUniConformantArray):
|
|
item = NET_DFS_ENTRY_ID
|
|
|
|
class LPNET_DFS_ENTRY_ID_ARRAY(NDRPOINTER):
|
|
referent = (
|
|
('Data', NET_DFS_ENTRY_ID_ARRAY),
|
|
)
|
|
|
|
# 2.2.4.108 NET_DFS_ENTRY_ID_CONTAINER
|
|
class NET_DFS_ENTRY_ID_CONTAINER(NDRSTRUCT):
|
|
structure = (
|
|
('Count', DWORD),
|
|
('Buffer', LPNET_DFS_ENTRY_ID_ARRAY),
|
|
)
|
|
|
|
# 2.2.4.109 DFS_SITENAME_INFO
|
|
class DFS_SITENAME_INFO(NDRSTRUCT):
|
|
structure = (
|
|
('SiteFlags', DWORD),
|
|
('SiteName', LPWSTR),
|
|
)
|
|
|
|
# 2.2.4.110 DFS_SITELIST_INFO
|
|
class DFS_SITENAME_INFO_ARRAY(NDRUniConformantArray):
|
|
item = DFS_SITENAME_INFO
|
|
|
|
class DFS_SITELIST_INFO(NDRSTRUCT):
|
|
structure = (
|
|
('cSites', DWORD),
|
|
('Site', DFS_SITENAME_INFO_ARRAY),
|
|
)
|
|
|
|
class LPDFS_SITELIST_INFO(NDRPOINTER):
|
|
referent = (
|
|
('Data', DFS_SITELIST_INFO),
|
|
)
|
|
|
|
# 2.2.3 Unions
|
|
# 2.2.3.3 FILE_INFO
|
|
class FILE_INFO(NDRUNION):
|
|
commonHdr = (
|
|
('tag', DWORD),
|
|
)
|
|
|
|
union = {
|
|
2: ('FileInfo2', LPFILE_INFO_2),
|
|
3: ('FileInfo3', LPFILE_INFO_3),
|
|
}
|
|
|
|
# 2.2.3.6 SHARE_INFO
|
|
class SHARE_INFO(NDRUNION):
|
|
commonHdr = (
|
|
('tag', DWORD),
|
|
)
|
|
|
|
union = {
|
|
0: ('ShareInfo0', LPSHARE_INFO_0),
|
|
1: ('ShareInfo1', LPSHARE_INFO_1),
|
|
2: ('ShareInfo2', LPSHARE_INFO_2),
|
|
502: ('ShareInfo502', LPSHARE_INFO_502),
|
|
1004: ('ShareInfo1004', LPSHARE_INFO_1004),
|
|
1006: ('ShareInfo1006', LPSHARE_INFO_1006),
|
|
1501: ('ShareInfo1501', LPSHARE_INFO_1501),
|
|
1005: ('ShareInfo1005', LPSHARE_INFO_1005),
|
|
501: ('ShareInfo501', LPSHARE_INFO_501),
|
|
503: ('ShareInfo503', LPSHARE_INFO_503),
|
|
}
|
|
|
|
# 2.2.3.7 SERVER_INFO
|
|
class SERVER_INFO(NDRUNION):
|
|
commonHdr = (
|
|
('tag', DWORD),
|
|
)
|
|
|
|
union = {
|
|
100: ('ServerInfo100', LPSERVER_INFO_100),
|
|
101: ('ServerInfo101', LPSERVER_INFO_101),
|
|
102: ('ServerInfo102', LPSERVER_INFO_102),
|
|
103: ('ServerInfo103', LPSERVER_INFO_103),
|
|
502: ('ServerInfo502', LPSERVER_INFO_502),
|
|
503: ('ServerInfo503', LPSERVER_INFO_503),
|
|
599: ('ServerInfo599', LPSERVER_INFO_599),
|
|
1005: ('ServerInfo1005', LPSERVER_INFO_1005),
|
|
1107: ('ServerInfo1107', LPSERVER_INFO_1107),
|
|
1010: ('ServerInfo1010', LPSERVER_INFO_1010),
|
|
1016: ('ServerInfo1016', LPSERVER_INFO_1016),
|
|
1017: ('ServerInfo1017', LPSERVER_INFO_1017),
|
|
1018: ('ServerInfo1018', LPSERVER_INFO_1018),
|
|
1501: ('ServerInfo1501', LPSERVER_INFO_1501),
|
|
1502: ('ServerInfo1502', LPSERVER_INFO_1502),
|
|
1503: ('ServerInfo1503', LPSERVER_INFO_1503),
|
|
1506: ('ServerInfo1506', LPSERVER_INFO_1506),
|
|
1510: ('ServerInfo1510', LPSERVER_INFO_1510),
|
|
1511: ('ServerInfo1511', LPSERVER_INFO_1511),
|
|
1512: ('ServerInfo1512', LPSERVER_INFO_1512),
|
|
1513: ('ServerInfo1513', LPSERVER_INFO_1513),
|
|
1514: ('ServerInfo1514', LPSERVER_INFO_1514),
|
|
1515: ('ServerInfo1515', LPSERVER_INFO_1515),
|
|
1516: ('ServerInfo1516', LPSERVER_INFO_1516),
|
|
1518: ('ServerInfo1518', LPSERVER_INFO_1518),
|
|
1523: ('ServerInfo1523', LPSERVER_INFO_1523),
|
|
1528: ('ServerInfo1528', LPSERVER_INFO_1528),
|
|
1529: ('ServerInfo1529', LPSERVER_INFO_1529),
|
|
1530: ('ServerInfo1530', LPSERVER_INFO_1530),
|
|
1533: ('ServerInfo1533', LPSERVER_INFO_1533),
|
|
1534: ('ServerInfo1534', LPSERVER_INFO_1534),
|
|
1535: ('ServerInfo1535', LPSERVER_INFO_1535),
|
|
1536: ('ServerInfo1536', LPSERVER_INFO_1536),
|
|
1538: ('ServerInfo1538', LPSERVER_INFO_1538),
|
|
1539: ('ServerInfo1539', LPSERVER_INFO_1539),
|
|
1540: ('ServerInfo1540', LPSERVER_INFO_1540),
|
|
1541: ('ServerInfo1541', LPSERVER_INFO_1541),
|
|
1542: ('ServerInfo1542', LPSERVER_INFO_1542),
|
|
1543: ('ServerInfo1543', LPSERVER_INFO_1543),
|
|
1544: ('ServerInfo1544', LPSERVER_INFO_1544),
|
|
1545: ('ServerInfo1545', LPSERVER_INFO_1545),
|
|
1546: ('ServerInfo1546', LPSERVER_INFO_1546),
|
|
1547: ('ServerInfo1547', LPSERVER_INFO_1547),
|
|
1548: ('ServerInfo1548', LPSERVER_INFO_1548),
|
|
1549: ('ServerInfo1549', LPSERVER_INFO_1549),
|
|
1550: ('ServerInfo1550', LPSERVER_INFO_1550),
|
|
1552: ('ServerInfo1552', LPSERVER_INFO_1552),
|
|
1553: ('ServerInfo1553', LPSERVER_INFO_1553),
|
|
1554: ('ServerInfo1554', LPSERVER_INFO_1554),
|
|
1555: ('ServerInfo1555', LPSERVER_INFO_1555),
|
|
1556: ('ServerInfo1556', LPSERVER_INFO_1556),
|
|
}
|
|
|
|
# 2.2.3.9 TRANSPORT_INFO
|
|
class TRANSPORT_INFO(NDRUNION):
|
|
commonHdr = (
|
|
('tag', DWORD),
|
|
)
|
|
|
|
union = {
|
|
0: ('Transport0', SERVER_TRANSPORT_INFO_0),
|
|
1: ('Transport1', SERVER_TRANSPORT_INFO_1),
|
|
2: ('Transport2', SERVER_TRANSPORT_INFO_2),
|
|
3: ('Transport3', SERVER_TRANSPORT_INFO_3),
|
|
}
|
|
|
|
# 2.2.3.10 SERVER_ALIAS_INFO
|
|
class SERVER_ALIAS_INFO(NDRUNION):
|
|
commonHdr = (
|
|
('tag', DWORD),
|
|
)
|
|
|
|
union = {
|
|
0: ('ServerAliasInfo0', LPSERVER_ALIAS_INFO_0),
|
|
}
|
|
|
|
|
|
################################################################################
|
|
# RPC CALLS
|
|
################################################################################
|
|
# 3.1.4.1 NetrConnectionEnum (Opnum 8)
|
|
class NetrConnectionEnum(NDRCALL):
|
|
opnum = 8
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('Qualifier', LPWSTR),
|
|
('InfoStruct', CONNECT_ENUM_STRUCT),
|
|
('PreferedMaximumLength', DWORD),
|
|
('ResumeHandle', LPLONG),
|
|
)
|
|
|
|
class NetrConnectionEnumResponse(NDRCALL):
|
|
structure = (
|
|
('InfoStruct',CONNECT_ENUM_STRUCT),
|
|
('TotalEntries',DWORD),
|
|
('ResumeHandle',LPLONG),
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.2 NetrFileEnum (Opnum 9)
|
|
class NetrFileEnum(NDRCALL):
|
|
opnum = 9
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('BasePath', LPWSTR),
|
|
('UserName', LPWSTR),
|
|
('InfoStruct', FILE_ENUM_STRUCT),
|
|
('PreferedMaximumLength', DWORD),
|
|
('ResumeHandle', LPLONG),
|
|
)
|
|
|
|
class NetrFileEnumResponse(NDRCALL):
|
|
structure = (
|
|
('InfoStruct',FILE_ENUM_STRUCT),
|
|
('TotalEntries',DWORD),
|
|
('ResumeHandle',LPLONG),
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.3 NetrFileGetInfo (Opnum 10)
|
|
class NetrFileGetInfo(NDRCALL):
|
|
opnum = 10
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('FileId', DWORD),
|
|
('Level', DWORD),
|
|
)
|
|
|
|
class NetrFileGetInfoResponse(NDRCALL):
|
|
structure = (
|
|
('InfoStruct',FILE_INFO),
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.4 NetrFileClose (Opnum 11)
|
|
class NetrFileClose(NDRCALL):
|
|
opnum = 11
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('FileId', DWORD),
|
|
)
|
|
|
|
class NetrFileCloseResponse(NDRCALL):
|
|
structure = (
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.5 NetrSessionEnum (Opnum 12)
|
|
class NetrSessionEnum(NDRCALL):
|
|
opnum = 12
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('ClientName', LPWSTR),
|
|
('UserName', LPWSTR),
|
|
('InfoStruct', SESSION_ENUM_STRUCT),
|
|
('PreferedMaximumLength', DWORD),
|
|
('ResumeHandle', LPLONG),
|
|
)
|
|
|
|
class NetrSessionEnumResponse(NDRCALL):
|
|
structure = (
|
|
('InfoStruct',SESSION_ENUM_STRUCT),
|
|
('TotalEntries',DWORD),
|
|
('ResumeHandle',LPLONG),
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.6 NetrSessionDel (Opnum 13)
|
|
class NetrSessionDel(NDRCALL):
|
|
opnum = 13
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('ClientName', LPWSTR),
|
|
('UserName', LPWSTR),
|
|
)
|
|
|
|
class NetrSessionDelResponse(NDRCALL):
|
|
structure = (
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.7 NetrShareAdd (Opnum 14)
|
|
class NetrShareAdd(NDRCALL):
|
|
opnum = 14
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('Level', DWORD),
|
|
('InfoStruct', SHARE_INFO),
|
|
('ParmErr', LPLONG),
|
|
)
|
|
|
|
class NetrShareAddResponse(NDRCALL):
|
|
structure = (
|
|
('ParmErr', LPLONG),
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.8 NetrShareEnum (Opnum 15)
|
|
class NetrShareEnum(NDRCALL):
|
|
opnum = 15
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('InfoStruct', SHARE_ENUM_STRUCT),
|
|
('PreferedMaximumLength', DWORD),
|
|
('ResumeHandle', LPLONG),
|
|
)
|
|
|
|
class NetrShareEnumResponse(NDRCALL):
|
|
structure = (
|
|
('InfoStruct', SHARE_ENUM_STRUCT),
|
|
('TotalEntries',DWORD),
|
|
('ResumeHandle',LPLONG),
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.9 NetrShareEnumSticky (Opnum 36)
|
|
class NetrShareEnumSticky(NDRCALL):
|
|
opnum = 36
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('InfoStruct', SHARE_ENUM_STRUCT),
|
|
('PreferedMaximumLength', DWORD),
|
|
('ResumeHandle', LPLONG),
|
|
)
|
|
|
|
class NetrShareEnumStickyResponse(NDRCALL):
|
|
structure = (
|
|
('InfoStruct', SHARE_ENUM_STRUCT),
|
|
('TotalEntries',DWORD),
|
|
('ResumeHandle',LPLONG),
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.10 NetrShareGetInfo (Opnum 16)
|
|
class NetrShareGetInfo(NDRCALL):
|
|
opnum = 16
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('NetName', WSTR),
|
|
('Level', DWORD),
|
|
)
|
|
|
|
class NetrShareGetInfoResponse(NDRCALL):
|
|
structure = (
|
|
('InfoStruct', SHARE_INFO),
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.11 NetrShareSetInfo (Opnum 17)
|
|
class NetrShareSetInfo(NDRCALL):
|
|
opnum = 17
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('NetName', WSTR),
|
|
('Level', DWORD),
|
|
('ShareInfo', SHARE_INFO),
|
|
('ParmErr', LPLONG),
|
|
)
|
|
|
|
class NetrShareSetInfoResponse(NDRCALL):
|
|
structure = (
|
|
('ParmErr', LPLONG),
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.12 NetrShareDel (Opnum 18)
|
|
class NetrShareDel(NDRCALL):
|
|
opnum = 18
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('NetName', WSTR),
|
|
('Reserved', DWORD),
|
|
)
|
|
|
|
class NetrShareDelResponse(NDRCALL):
|
|
structure = (
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.13 NetrShareDelSticky (Opnum 19)
|
|
class NetrShareDelSticky(NDRCALL):
|
|
opnum = 19
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('NetName', WSTR),
|
|
('Reserved', DWORD),
|
|
)
|
|
|
|
class NetrShareDelStickyResponse(NDRCALL):
|
|
structure = (
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.14 NetrShareDelStart (Opnum 37)
|
|
class NetrShareDelStart(NDRCALL):
|
|
opnum = 37
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('NetName', WSTR),
|
|
('Reserved', DWORD),
|
|
)
|
|
|
|
class NetrShareDelStartResponse(NDRCALL):
|
|
structure = (
|
|
('ContextHandle',SHARE_DEL_HANDLE),
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.15 NetrShareDelCommit (Opnum 38)
|
|
class NetrShareDelCommit(NDRCALL):
|
|
opnum = 38
|
|
structure = (
|
|
('ContextHandle',SHARE_DEL_HANDLE),
|
|
)
|
|
|
|
class NetrShareDelCommitResponse(NDRCALL):
|
|
structure = (
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.16 NetrShareCheck (Opnum 20)
|
|
class NetrShareCheck(NDRCALL):
|
|
opnum = 20
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('Device', WSTR),
|
|
)
|
|
|
|
class NetrShareCheckResponse(NDRCALL):
|
|
structure = (
|
|
('Type',DWORD),
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.17 NetrServerGetInfo (Opnum 21)
|
|
class NetrServerGetInfo(NDRCALL):
|
|
opnum = 21
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('Level', DWORD),
|
|
)
|
|
|
|
class NetrServerGetInfoResponse(NDRCALL):
|
|
structure = (
|
|
('InfoStruct', SERVER_INFO),
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.18 NetrServerSetInfo (Opnum 22)
|
|
class NetrServerSetInfo(NDRCALL):
|
|
opnum = 22
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('Level', DWORD),
|
|
('InfoStruct', SERVER_INFO),
|
|
)
|
|
|
|
class NetrServerSetInfoResponse(NDRCALL):
|
|
structure = (
|
|
('ParmErr', LPLONG),
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.19 NetrServerDiskEnum (Opnum 23)
|
|
class NetrServerDiskEnum(NDRCALL):
|
|
opnum = 23
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('Level', DWORD),
|
|
('DiskInfoStruct', DISK_ENUM_CONTAINER),
|
|
('PreferedMaximumLength', DWORD),
|
|
('ResumeHandle', LPLONG),
|
|
)
|
|
|
|
class NetrServerDiskEnumResponse(NDRCALL):
|
|
structure = (
|
|
('DiskInfoStruct', DISK_ENUM_CONTAINER),
|
|
('TotalEntries', DWORD),
|
|
('ResumeHandle', LPLONG),
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.20 NetrServerStatisticsGet (Opnum 24)
|
|
class NetrServerStatisticsGet(NDRCALL):
|
|
opnum = 24
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('Service', LPWSTR),
|
|
('Level', DWORD),
|
|
('Options', DWORD),
|
|
)
|
|
|
|
class NetrServerStatisticsGetResponse(NDRCALL):
|
|
structure = (
|
|
('InfoStruct', LPSTAT_SERVER_0),
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.21 NetrRemoteTOD (Opnum 28)
|
|
class NetrRemoteTOD(NDRCALL):
|
|
opnum = 28
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
)
|
|
|
|
class NetrRemoteTODResponse(NDRCALL):
|
|
structure = (
|
|
('BufferPtr', LPTIME_OF_DAY_INFO),
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.22 NetrServerTransportAdd (Opnum 25)
|
|
class NetrServerTransportAdd(NDRCALL):
|
|
opnum = 25
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('Level', DWORD),
|
|
('Buffer', SERVER_TRANSPORT_INFO_0),
|
|
)
|
|
|
|
class NetrServerTransportAddResponse(NDRCALL):
|
|
structure = (
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.23 NetrServerTransportAddEx (Opnum 41)
|
|
class NetrServerTransportAddEx(NDRCALL):
|
|
opnum = 41
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('Level', DWORD),
|
|
('Buffer', TRANSPORT_INFO),
|
|
)
|
|
|
|
class NetrServerTransportAddExResponse(NDRCALL):
|
|
structure = (
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.24 NetrServerTransportEnum (Opnum 26)
|
|
class NetrServerTransportEnum(NDRCALL):
|
|
opnum = 26
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('InfoStruct', SERVER_XPORT_ENUM_STRUCT),
|
|
('PreferedMaximumLength', DWORD),
|
|
('ResumeHandle', LPLONG),
|
|
)
|
|
|
|
class NetrServerTransportEnumResponse(NDRCALL):
|
|
structure = (
|
|
('InfoStruct', SERVER_XPORT_ENUM_STRUCT),
|
|
('TotalEntries', DWORD),
|
|
('ResumeHandle', LPLONG),
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.25 NetrServerTransportDel (Opnum 27)
|
|
class NetrServerTransportDel(NDRCALL):
|
|
opnum = 27
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('Level', DWORD),
|
|
('Buffer', SERVER_TRANSPORT_INFO_0),
|
|
)
|
|
|
|
class NetrServerTransportDelResponse(NDRCALL):
|
|
structure = (
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.26 NetrServerTransportDelEx (Opnum 53)
|
|
class NetrServerTransportDelEx(NDRCALL):
|
|
opnum = 53
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('Level', DWORD),
|
|
('Buffer', TRANSPORT_INFO),
|
|
)
|
|
|
|
class NetrServerTransportDelExResponse(NDRCALL):
|
|
structure = (
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.27 NetrpGetFileSecurity (Opnum 39)
|
|
class NetrpGetFileSecurity(NDRCALL):
|
|
opnum = 39
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('ShareName', LPWSTR),
|
|
('lpFileName', WSTR),
|
|
('RequestedInformation', SECURITY_INFORMATION),
|
|
)
|
|
|
|
class NetrpGetFileSecurityResponse(NDRCALL):
|
|
structure = (
|
|
('SecurityDescriptor', PADT_SECURITY_DESCRIPTOR),
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.28 NetrpSetFileSecurity (Opnum 40)
|
|
class NetrpSetFileSecurity(NDRCALL):
|
|
opnum = 40
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('ShareName', LPWSTR),
|
|
('lpFileName', WSTR),
|
|
('SecurityInformation', SECURITY_INFORMATION),
|
|
('SecurityDescriptor', ADT_SECURITY_DESCRIPTOR),
|
|
)
|
|
|
|
class NetrpSetFileSecurityResponse(NDRCALL):
|
|
structure = (
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.29 NetprPathType (Opnum 30)
|
|
class NetprPathType(NDRCALL):
|
|
opnum = 30
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('PathName', WSTR),
|
|
('Flags', DWORD),
|
|
)
|
|
|
|
class NetprPathTypeResponse(NDRCALL):
|
|
structure = (
|
|
('PathType', DWORD),
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.30 NetprPathCanonicalize (Opnum 31)
|
|
class NetprPathCanonicalize(NDRCALL):
|
|
opnum = 31
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('PathName', WSTR),
|
|
('OutbufLen', DWORD),
|
|
('Prefix', WSTR),
|
|
('PathType', DWORD),
|
|
('Flags', DWORD),
|
|
)
|
|
|
|
class NetprPathCanonicalizeResponse(NDRCALL):
|
|
structure = (
|
|
('Outbuf', NDRUniConformantArray),
|
|
('PathType', DWORD),
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.31 NetprPathCompare (Opnum 32)
|
|
class NetprPathCompare(NDRCALL):
|
|
opnum = 32
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('PathName1', WSTR),
|
|
('PathName2', WSTR),
|
|
('PathType', DWORD),
|
|
('Flags', DWORD),
|
|
)
|
|
|
|
class NetprPathCompareResponse(NDRCALL):
|
|
structure = (
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.32 NetprNameValidate (Opnum 33)
|
|
class NetprNameValidate(NDRCALL):
|
|
opnum = 33
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('Name', WSTR),
|
|
('NameType', DWORD),
|
|
('Flags', DWORD),
|
|
)
|
|
|
|
class NetprNameValidateResponse(NDRCALL):
|
|
structure = (
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.33 NetprNameCanonicalize (Opnum 34)
|
|
class NetprNameCanonicalize(NDRCALL):
|
|
opnum = 34
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('Name', WSTR),
|
|
('OutbufLen', DWORD),
|
|
('NameType', DWORD),
|
|
('Flags', DWORD),
|
|
)
|
|
|
|
class NetprNameCanonicalizeResponse(NDRCALL):
|
|
structure = (
|
|
('Outbuf', NDRUniConformantArray),
|
|
('NameType', DWORD),
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.34 NetprNameCompare (Opnum 35)
|
|
class NetprNameCompare(NDRCALL):
|
|
opnum = 35
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('Name1', WSTR),
|
|
('Name2', WSTR),
|
|
('NameType', DWORD),
|
|
('Flags', DWORD),
|
|
)
|
|
|
|
class NetprNameCompareResponse(NDRCALL):
|
|
structure = (
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.35 NetrDfsGetVersion (Opnum 43)
|
|
class NetrDfsGetVersion(NDRCALL):
|
|
opnum = 43
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
)
|
|
|
|
class NetrDfsGetVersionResponse(NDRCALL):
|
|
structure = (
|
|
('Version', DWORD),
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.36 NetrDfsCreateLocalPartition (Opnum 44)
|
|
class NetrDfsCreateLocalPartition(NDRCALL):
|
|
opnum = 44
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('ShareName', WSTR),
|
|
('EntryUid', GUID),
|
|
('EntryPrefix', WSTR),
|
|
('ShortName', WSTR),
|
|
('RelationInfo', NET_DFS_ENTRY_ID_CONTAINER),
|
|
('Force', DWORD),
|
|
)
|
|
|
|
class NetrDfsCreateLocalPartitionResponse(NDRCALL):
|
|
structure = (
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.37 NetrDfsDeleteLocalPartition (Opnum 45)
|
|
class NetrDfsDeleteLocalPartition(NDRCALL):
|
|
opnum = 45
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('Uid', GUID),
|
|
('Prefix', WSTR),
|
|
)
|
|
|
|
class NetrDfsDeleteLocalPartitionResponse(NDRCALL):
|
|
structure = (
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.38 NetrDfsSetLocalVolumeState (Opnum 46)
|
|
class NetrDfsSetLocalVolumeState(NDRCALL):
|
|
opnum = 46
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('Uid', GUID),
|
|
('Prefix', WSTR),
|
|
('State', DWORD),
|
|
)
|
|
|
|
class NetrDfsSetLocalVolumeStateResponse(NDRCALL):
|
|
structure = (
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.39 NetrDfsCreateExitPoint (Opnum 48)
|
|
class NetrDfsCreateExitPoint(NDRCALL):
|
|
opnum = 48
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('Uid', GUID),
|
|
('Prefix', WSTR),
|
|
('Type', DWORD),
|
|
('ShortPrefixLen', DWORD),
|
|
)
|
|
|
|
class NetrDfsCreateExitPointResponse(NDRCALL):
|
|
structure = (
|
|
('ShortPrefix',WCHAR_ARRAY),
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.40 NetrDfsModifyPrefix (Opnum 50)
|
|
class NetrDfsModifyPrefix(NDRCALL):
|
|
opnum = 50
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('Uid', GUID),
|
|
('Prefix', WSTR),
|
|
)
|
|
|
|
class NetrDfsModifyPrefixResponse(NDRCALL):
|
|
structure = (
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.41 NetrDfsDeleteExitPoint (Opnum 49)
|
|
class NetrDfsDeleteExitPoint(NDRCALL):
|
|
opnum = 49
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('Uid', GUID),
|
|
('Prefix', WSTR),
|
|
('Type', DWORD),
|
|
)
|
|
|
|
class NetrDfsDeleteExitPointResponse(NDRCALL):
|
|
structure = (
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.42 NetrDfsFixLocalVolume (Opnum 51)
|
|
class NetrDfsFixLocalVolume(NDRCALL):
|
|
opnum = 51
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('VolumeName', WSTR),
|
|
('EntryType', DWORD),
|
|
('ServiceType', DWORD),
|
|
('StgId', WSTR),
|
|
('EntryUid', GUID),
|
|
('EntryPrefix', WSTR),
|
|
('RelationInfo', NET_DFS_ENTRY_ID_CONTAINER),
|
|
('CreateDisposition', DWORD),
|
|
)
|
|
|
|
class NetrDfsFixLocalVolumeResponse(NDRCALL):
|
|
structure = (
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.43 NetrDfsManagerReportSiteInfo (Opnum 52)
|
|
class NetrDfsManagerReportSiteInfo(NDRCALL):
|
|
opnum = 52
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('ppSiteInfo', LPDFS_SITELIST_INFO),
|
|
)
|
|
|
|
class NetrDfsManagerReportSiteInfoResponse(NDRCALL):
|
|
structure = (
|
|
('ppSiteInfo', LPDFS_SITELIST_INFO),
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.44 NetrServerAliasAdd (Opnum 54)
|
|
class NetrServerAliasAdd(NDRCALL):
|
|
opnum = 54
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('Level', DWORD),
|
|
('InfoStruct', SERVER_ALIAS_INFO),
|
|
)
|
|
|
|
class NetrServerAliasAddResponse(NDRCALL):
|
|
structure = (
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.45 NetrServerAliasEnum (Opnum 55)
|
|
class NetrServerAliasEnum(NDRCALL):
|
|
opnum = 55
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('InfoStruct', SERVER_ALIAS_ENUM_STRUCT),
|
|
('PreferedMaximumLength', DWORD),
|
|
('ResumeHandle', LPLONG),
|
|
)
|
|
|
|
class NetrServerAliasEnumResponse(NDRCALL):
|
|
structure = (
|
|
('InfoStruct',SERVER_ALIAS_ENUM_STRUCT),
|
|
('TotalEntries',DWORD),
|
|
('ResumeHandle',LPLONG),
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.46 NetrServerAliasDel (Opnum 56)
|
|
class NetrServerAliasDel(NDRCALL):
|
|
opnum = 56
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('Level', DWORD),
|
|
('InfoStruct', SERVER_ALIAS_INFO),
|
|
)
|
|
|
|
class NetrServerAliasDelResponse(NDRCALL):
|
|
structure = (
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
# 3.1.4.47 NetrShareDelEx (Opnum 57)
|
|
class NetrShareDelEx(NDRCALL):
|
|
opnum = 57
|
|
structure = (
|
|
('ServerName', PSRVSVC_HANDLE),
|
|
('Level', DWORD),
|
|
('ShareInfo', SHARE_INFO),
|
|
)
|
|
|
|
class NetrShareDelExResponse(NDRCALL):
|
|
structure = (
|
|
('ErrorCode',ULONG),
|
|
)
|
|
|
|
################################################################################
|
|
# OPNUMs and their corresponding structures
|
|
################################################################################
|
|
OPNUMS = {
|
|
8 : (NetrConnectionEnum, NetrConnectionEnumResponse),
|
|
9 : (NetrFileEnum, NetrFileEnumResponse),
|
|
10 : (NetrFileGetInfo, NetrFileGetInfoResponse),
|
|
11 : (NetrFileClose, NetrFileCloseResponse),
|
|
12 : (NetrSessionEnum, NetrSessionEnumResponse),
|
|
13 : (NetrSessionDel, NetrSessionDelResponse),
|
|
14 : (NetrShareAdd, NetrShareAddResponse),
|
|
15 : (NetrShareEnum, NetrShareEnumResponse),
|
|
16 : (NetrShareGetInfo, NetrShareGetInfoResponse),
|
|
17 : (NetrShareSetInfo, NetrShareSetInfoResponse),
|
|
18 : (NetrShareDel, NetrShareDelResponse),
|
|
19 : (NetrShareDelSticky, NetrShareDelStickyResponse),
|
|
20 : (NetrShareCheck, NetrShareCheckResponse),
|
|
21 : (NetrServerGetInfo, NetrServerGetInfoResponse),
|
|
22 : (NetrServerSetInfo, NetrServerSetInfoResponse),
|
|
23 : (NetrServerDiskEnum, NetrServerDiskEnumResponse),
|
|
24 : (NetrServerStatisticsGet, NetrServerStatisticsGetResponse),
|
|
25 : (NetrServerTransportAdd, NetrServerTransportAddResponse),
|
|
26 : (NetrServerTransportEnum, NetrServerTransportEnumResponse),
|
|
27 : (NetrServerTransportDel, NetrServerTransportDelResponse),
|
|
28 : (NetrRemoteTOD, NetrRemoteTODResponse),
|
|
30 : (NetprPathType, NetprPathTypeResponse),
|
|
31 : (NetprPathCanonicalize, NetprPathCanonicalizeResponse),
|
|
32 : (NetprPathCompare, NetprPathCompareResponse),
|
|
33 : (NetprNameValidate, NetprNameValidateResponse),
|
|
34 : (NetprNameCanonicalize, NetprNameCanonicalizeResponse),
|
|
35 : (NetprNameCompare, NetprNameCompareResponse),
|
|
36 : (NetrShareEnumSticky, NetrShareEnumStickyResponse),
|
|
37 : (NetrShareDelStart, NetrShareDelStartResponse),
|
|
38 : (NetrShareDelCommit, NetrShareDelCommitResponse),
|
|
39 : (NetrpGetFileSecurity, NetrpGetFileSecurityResponse),
|
|
40 : (NetrpSetFileSecurity, NetrpSetFileSecurityResponse),
|
|
41 : (NetrServerTransportAddEx, NetrServerTransportAddExResponse),
|
|
43 : (NetrDfsGetVersion, NetrDfsGetVersionResponse),
|
|
44 : (NetrDfsCreateLocalPartition, NetrDfsCreateLocalPartitionResponse),
|
|
45 : (NetrDfsDeleteLocalPartition, NetrDfsDeleteLocalPartitionResponse),
|
|
46 : (NetrDfsSetLocalVolumeState, NetrDfsSetLocalVolumeStateResponse),
|
|
48 : (NetrDfsCreateExitPoint, NetrDfsCreateExitPointResponse),
|
|
49 : (NetrDfsDeleteExitPoint, NetrDfsDeleteExitPointResponse),
|
|
50 : (NetrDfsModifyPrefix, NetrDfsModifyPrefixResponse),
|
|
51 : (NetrDfsFixLocalVolume, NetrDfsFixLocalVolumeResponse),
|
|
52 : (NetrDfsManagerReportSiteInfo, NetrDfsManagerReportSiteInfoResponse),
|
|
53 : (NetrServerTransportDelEx, NetrServerTransportDelExResponse),
|
|
54 : (NetrServerAliasAdd, NetrServerAliasAddResponse),
|
|
55 : (NetrServerAliasEnum, NetrServerAliasEnumResponse),
|
|
56 : (NetrServerAliasDel, NetrServerAliasDelResponse),
|
|
57 : (NetrShareDelEx, NetrShareDelExResponse),
|
|
}
|
|
|
|
################################################################################
|
|
# HELPER FUNCTIONS
|
|
################################################################################
|
|
def hNetrConnectionEnum(dce, qualifier, level, resumeHandle = 0, preferedMaximumLength = 0xffffffff):
|
|
request = NetrConnectionEnum()
|
|
request['ServerName'] = NULL
|
|
request['Qualifier'] = qualifier
|
|
request['InfoStruct']['Level'] = level
|
|
request['InfoStruct']['ConnectInfo']['tag'] = level
|
|
request['PreferedMaximumLength'] = preferedMaximumLength
|
|
request['ResumeHandle'] = resumeHandle
|
|
return dce.request(request)
|
|
|
|
def hNetrFileEnum(dce, basePath, userName, level, resumeHandle = 0, preferedMaximumLength = 0xffffffff):
|
|
request = NetrFileEnum()
|
|
request['ServerName'] = NULL
|
|
request['BasePath'] = basePath
|
|
request['UserName'] = userName
|
|
request['InfoStruct']['Level'] = level
|
|
request['InfoStruct']['FileInfo']['tag'] = level
|
|
request['PreferedMaximumLength'] = preferedMaximumLength
|
|
request['ResumeHandle'] = resumeHandle
|
|
return dce.request(request)
|
|
|
|
def hNetrFileGetInfo(dce, fileId, level):
|
|
request = NetrFileGetInfo()
|
|
request['ServerName'] = NULL
|
|
request['FileId'] = fileId
|
|
request['Level'] = level
|
|
return dce.request(request)
|
|
|
|
def hNetrFileClose(dce, fileId):
|
|
request = NetrFileClose()
|
|
request['ServerName'] = NULL
|
|
request['FileId'] = fileId
|
|
return dce.request(request)
|
|
|
|
def hNetrSessionEnum(dce, clientName, userName, level, resumeHandle = 0, preferedMaximumLength = 0xffffffff):
|
|
request = NetrSessionEnum()
|
|
request['ServerName'] = NULL
|
|
request['ClientName'] = clientName
|
|
request['UserName'] = userName
|
|
request['InfoStruct']['Level'] = level
|
|
request['InfoStruct']['SessionInfo']['tag'] = level
|
|
request['InfoStruct']['SessionInfo']['Level%d'%level]['Buffer'] = NULL
|
|
request['PreferedMaximumLength'] = preferedMaximumLength
|
|
request['ResumeHandle'] = resumeHandle
|
|
|
|
return dce.request(request)
|
|
|
|
def hNetrSessionDel(dce, clientName, userName):
|
|
request = NetrSessionDel()
|
|
request['ServerName'] = NULL
|
|
request['ClientName'] = clientName
|
|
request['UserName'] = userName
|
|
return dce.request(request)
|
|
|
|
def hNetrShareAdd(dce, level, infoStruct):
|
|
request = NetrShareAdd()
|
|
request['ServerName'] = NULL
|
|
request['Level'] = level
|
|
request['InfoStruct']['tag'] = level
|
|
request['InfoStruct']['ShareInfo%d'%level] = infoStruct
|
|
return dce.request(request)
|
|
|
|
def hNetrShareDel(dce, netName):
|
|
request = NetrShareDel()
|
|
request['ServerName'] = NULL
|
|
request['NetName'] = netName
|
|
return dce.request(request)
|
|
|
|
def hNetrShareEnum(dce, level, resumeHandle = 0, preferedMaximumLength = 0xffffffff):
|
|
request = NetrShareEnum()
|
|
request['ServerName'] = '\x00'
|
|
request['PreferedMaximumLength'] = preferedMaximumLength
|
|
request['ResumeHandle'] = resumeHandle
|
|
request['InfoStruct']['Level'] = level
|
|
request['InfoStruct']['ShareInfo']['tag'] = level
|
|
request['InfoStruct']['ShareInfo']['Level%d'%level]['Buffer'] = NULL
|
|
|
|
return dce.request(request)
|
|
|
|
def hNetrShareEnumSticky(dce, level, resumeHandle = 0, preferedMaximumLength = 0xffffffff):
|
|
request = NetrShareEnumSticky()
|
|
request['ServerName'] = NULL
|
|
request['PreferedMaximumLength'] = preferedMaximumLength
|
|
request['ResumeHandle'] = resumeHandle
|
|
request['InfoStruct']['Level'] = level
|
|
request['InfoStruct']['ShareInfo']['tag'] = level
|
|
request['InfoStruct']['ShareInfo']['Level%d'%level]['Buffer'] = NULL
|
|
|
|
return dce.request(request)
|
|
|
|
def hNetrShareGetInfo(dce, netName, level):
|
|
request = NetrShareGetInfo()
|
|
request['ServerName'] = NULL
|
|
request['NetName'] = netName
|
|
request['Level'] = level
|
|
return dce.request(request)
|
|
|
|
def hNetrShareSetInfo(dce, netName, level, shareInfo):
|
|
request = NetrShareSetInfo()
|
|
request['ServerName'] = NULL
|
|
request['NetName'] = netName
|
|
request['Level'] = level
|
|
request['ShareInfo']['tag'] = level
|
|
request['ShareInfo']['ShareInfo%d'%level] = shareInfo
|
|
|
|
return dce.request(request)
|
|
|
|
def hNetrShareDelSticky(dce, netName):
|
|
request = NetrShareDelSticky()
|
|
request['ServerName'] = NULL
|
|
request['NetName'] = netName
|
|
return dce.request(request)
|
|
|
|
# Sacala la h a estos 2, y tira todos los test cases juntos
|
|
def hNetrShareDelStart(dce, netName):
|
|
request = NetrShareDelStart()
|
|
request['ServerName'] = NULL
|
|
request['NetName'] = netName
|
|
return dce.request(request)
|
|
|
|
def hNetrShareDelCommit(dce, contextHandle):
|
|
request = NetrShareDelCommit()
|
|
request['ContextHandle'] = contextHandle
|
|
return dce.request(request)
|
|
|
|
def hNetrShareCheck(dce, device):
|
|
request = NetrShareCheck()
|
|
request['ServerName'] = NULL
|
|
request['Device'] = device
|
|
return dce.request(request)
|
|
|
|
def hNetrServerGetInfo(dce, level):
|
|
request = NetrServerGetInfo()
|
|
request['ServerName'] = NULL
|
|
request['Level'] = level
|
|
return dce.request(request)
|
|
|
|
def hNetrServerDiskEnum(dce, level, resumeHandle = 0, preferedMaximumLength = 0xffffffff):
|
|
request = NetrServerDiskEnum()
|
|
request['ServerName'] = NULL
|
|
request['PreferedMaximumLength'] = preferedMaximumLength
|
|
request['ResumeHandle'] = resumeHandle
|
|
request['Level'] = level
|
|
request['DiskInfoStruct']['Buffer'] = NULL
|
|
return dce.request(request)
|
|
|
|
def hNetrServerStatisticsGet(dce, service, level, options):
|
|
request = NetrServerStatisticsGet()
|
|
request['ServerName'] = NULL
|
|
request['Service'] = service
|
|
request['Level'] = level
|
|
request['Options'] = options
|
|
return dce.request(request)
|
|
|
|
def hNetrRemoteTOD(dce):
|
|
request = NetrRemoteTOD()
|
|
request['ServerName'] = NULL
|
|
return dce.request(request)
|
|
|
|
def hNetrServerTransportEnum(dce, level, resumeHandle = 0, preferedMaximumLength = 0xffffffff):
|
|
request = NetrServerTransportEnum()
|
|
request['ServerName'] = NULL
|
|
request['PreferedMaximumLength'] = preferedMaximumLength
|
|
request['ResumeHandle'] = resumeHandle
|
|
request['InfoStruct']['Level'] = level
|
|
request['InfoStruct']['XportInfo']['tag'] = level
|
|
request['InfoStruct']['XportInfo']['Level%d' % level]['Buffer'] = NULL
|
|
return dce.request(request)
|
|
|
|
def hNetrpGetFileSecurity(dce, shareName, lpFileName, requestedInformation):
|
|
request = NetrpGetFileSecurity()
|
|
request['ServerName'] = NULL
|
|
request['ShareName'] = shareName
|
|
request['lpFileName'] = lpFileName
|
|
request['RequestedInformation'] = requestedInformation
|
|
retVal = dce.request(request)
|
|
return b''.join(retVal['SecurityDescriptor']['Buffer'])
|
|
|
|
def hNetrpSetFileSecurity(dce, shareName, lpFileName, securityInformation, securityDescriptor):
|
|
request = NetrpSetFileSecurity()
|
|
request['ServerName'] = NULL
|
|
request['ShareName'] = shareName
|
|
request['lpFileName'] = lpFileName
|
|
request['SecurityInformation'] = securityInformation
|
|
request['SecurityDescriptor']['Length'] = len(securityDescriptor)
|
|
request['SecurityDescriptor']['Buffer'] = list(securityDescriptor)
|
|
return dce.request(request)
|
|
|
|
def hNetprPathType(dce, pathName, flags):
|
|
request = NetprPathType()
|
|
request['ServerName'] = NULL
|
|
request['PathName'] = pathName
|
|
request['Flags'] = flags
|
|
return dce.request(request)
|
|
|
|
def hNetprPathCanonicalize(dce, pathName, prefix, outbufLen=50, pathType=0, flags=0):
|
|
request = NetprPathCanonicalize()
|
|
request['ServerName'] = NULL
|
|
request['PathName'] = pathName
|
|
request['OutbufLen'] = outbufLen
|
|
request['Prefix'] = prefix
|
|
request['PathType'] = pathType
|
|
request['Flags'] = flags
|
|
return dce.request(request)
|
|
|
|
def hNetprPathCompare(dce, pathName1, pathName2, pathType=0, flags=0):
|
|
request = NetprPathCompare()
|
|
request['ServerName'] = NULL
|
|
request['PathName1'] = pathName1
|
|
request['PathName2'] = pathName2
|
|
request['PathType'] = pathType
|
|
request['Flags'] = flags
|
|
return dce.request(request)
|
|
|
|
def hNetprNameValidate(dce, name, nameType, flags=0):
|
|
request = NetprNameValidate()
|
|
request['ServerName'] = NULL
|
|
request['Name'] = name
|
|
request['NameType'] = nameType
|
|
request['Flags'] = flags
|
|
return dce.request(request)
|
|
|
|
def hNetprNameCanonicalize(dce, name, outbufLen=50, nameType=0, flags=0):
|
|
request = NetprNameCanonicalize()
|
|
request['ServerName'] = NULL
|
|
request['Name'] = name
|
|
request['OutbufLen'] = outbufLen
|
|
request['NameType'] = nameType
|
|
request['Flags'] = flags
|
|
return dce.request(request)
|
|
|
|
def hNetprNameCompare(dce, name1, name2, nameType=0, flags=0):
|
|
request = NetprNameCompare()
|
|
request['ServerName'] = NULL
|
|
request['Name1'] = name1
|
|
request['Name2'] = name2
|
|
request['NameType'] = nameType
|
|
request['Flags'] = flags
|
|
return dce.request(request)
|
|
|
|
def hNetrDfsGetVersion(dce):
|
|
request = NetrDfsGetVersion()
|
|
request['ServerName'] = NULL
|
|
return dce.request(request)
|
|
|
|
def hNetrServerAliasAdd(dce, level, aliasInfo):
|
|
request = NetrServerAliasAdd()
|
|
request['ServerName'] = NULL
|
|
request['Level'] = level
|
|
request['InfoStruct']['tag'] = level
|
|
request['InfoStruct']['ServerAliasInfo%d'%level] = aliasInfo
|
|
return dce.request(request)
|
|
|
|
def hNetrServerAliasDel(dce, level, aliasInfo):
|
|
request = NetrServerAliasDel()
|
|
request['ServerName'] = NULL
|
|
request['Level'] = level
|
|
request['InfoStruct']['tag'] = level
|
|
request['InfoStruct']['ServerAliasInfo%d'%level] = aliasInfo
|
|
return dce.request(request)
|
|
|
|
def hNetrServerAliasEnum(dce, level, resumeHandle = 0, preferedMaximumLength = 0xffffffff):
|
|
request = NetrServerAliasEnum()
|
|
request['ServerName'] = NULL
|
|
request['InfoStruct']['Level'] = level
|
|
request['InfoStruct']['ServerAliasInfo']['tag'] = level
|
|
request['InfoStruct']['ServerAliasInfo']['Level%d' % level]['Buffer'] = NULL
|
|
request['PreferedMaximumLength'] = preferedMaximumLength
|
|
request['ResumeHandle'] = resumeHandle
|
|
return dce.request(request)
|