Hide keyboard shortcuts

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# Impacket - Collection of Python classes for working with network protocols. 

2# 

3# SECUREAUTH LABS. Copyright (C) 2020 SecureAuth Corporation. All rights reserved. 

4# 

5# This software is provided under a slightly modified version 

6# of the Apache Software License. See the accompanying LICENSE file 

7# for more information. 

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# 

21# Author: 

22# Alberto Solino (@agsolino) 

23# 

24from __future__ import division 

25from __future__ import print_function 

26from impacket.dcerpc.v5.rpcrt import DCERPCException 

27from impacket.dcerpc.v5.ndr import NDRCALL, NDR, NDRSTRUCT, NDRUNION, NDRPOINTER, NDRUniConformantArray, \ 

28 NDRUniFixedArray, NDRBOOLEAN, NDRUniConformantVaryingArray, PNDRUniConformantArray 

29from impacket.dcerpc.v5.dtypes import NULL, DWORD, LPWSTR, LPBYTE, LMSTR, ULONG, GUID, LPLONG, WSTR, \ 

30 SECURITY_INFORMATION, WCHAR 

31from impacket import system_errors 

32from impacket.uuid import uuidtup_to_bin 

33 

34MSRPC_UUID_SRVS = uuidtup_to_bin(('4B324FC8-1670-01D3-1278-5A47BF6EE188', '3.0')) 

35 

36class DCERPCSessionError(DCERPCException): 

37 def __init__(self, error_string=None, error_code=None, packet=None): 

38 DCERPCException.__init__(self, error_string, error_code, packet) 

39 

40 def __str__( self ): 

41 key = self.error_code 

42 if key in system_errors.ERROR_MESSAGES: 42 ↛ 47line 42 didn't jump to line 47, because the condition on line 42 was never false

43 error_msg_short = system_errors.ERROR_MESSAGES[key][0] 

44 error_msg_verbose = system_errors.ERROR_MESSAGES[key][1] 

45 return 'SRVS SessionError: code: 0x%x - %s - %s' % (self.error_code, error_msg_short, error_msg_verbose) 

46 else: 

47 return 'SRVS SessionError: unknown error code: 0x%x' % self.error_code 

48 

49################################################################################ 

50# CONSTANTS 

51################################################################################ 

52# 2.2.1.1 SRVSVC_HANDLE 

53SRVSVC_HANDLE = WCHAR 

54 

55class PSRVSVC_HANDLE(NDRPOINTER): 

56 referent = ( 

57 ('Data', SRVSVC_HANDLE), 

58 ) 

59 

60# 2.2.1.2 SHARE_DEL_HANDLE 

61class SHARE_DEL_HANDLE(NDRSTRUCT): 

62 align = 1 

63 structure = ( 

64 ('Data','20s=""'), 

65 ) 

66 

67# 2.2.1.3 PSHARE_DEL_HANDLE 

68class PSHARE_DEL_HANDLE(NDRPOINTER): 

69 referent = ( 

70 ('Data', SHARE_DEL_HANDLE), 

71 ) 

72 

73# 2.2.2.2 MAX_PREFERRED_LENGTH 

74MAX_PREFERRED_LENGTH = -1 

75 

76# 2.2.2.3 Session User Flags 

77SESS_GUEST = 0x00000001 

78SESS_NOENCRYPTION = 0x00000002 

79 

80# 2.2.2.4 Share Types 

81STYPE_DISKTREE = 0x00000000 

82STYPE_PRINTQ = 0x00000001 

83STYPE_DEVICE = 0x00000002 

84STYPE_IPC = 0x00000003 

85STYPE_CLUSTER_FS = 0x02000000 

86STYPE_CLUSTER_SOFS = 0x04000000 

87STYPE_CLUSTER_DFS = 0x08000000 

88 

89STYPE_SPECIAL = 0x80000000 

90STYPE_TEMPORARY = 0x40000000 

91 

92# AND with shi_type to extract the Share Type part 

93STYPE_MASK = 0x000000FF 

94 

95# 2.2.2.5 Client-Side Caching (CSC) States 

96CSC_CACHE_MANUAL_REINT = 0x00 

97CSC_CACHE_AUTO_REINT = 0x10 

98CSC_CACHE_VDO = 0x20 

99CSC_CACHE_NONE = 0x30 

100 

101# 2.2.2.6 Platform IDs 

102PLATFORM_ID_DOS = 300 

103PLATFORM_ID_OS2 = 400 

104PLATFORM_ID_NT = 500 

105PLATFORM_ID_OSF = 600 

106PLATFORM_ID_VMS = 700 

107 

108# 2.2.2.7 Software Type Flags 

109SV_TYPE_WORKSTATION = 0x00000001 

110SV_TYPE_SERVER = 0x00000002 

111SV_TYPE_SQLSERVER = 0x00000004 

112SV_TYPE_DOMAIN_CTRL = 0x00000008 

113SV_TYPE_DOMAIN_BAKCTRL = 0x00000010 

114SV_TYPE_TIME_SOURCE = 0x00000020 

115SV_TYPE_AFP = 0x00000040 

116SV_TYPE_NOVELL = 0x00000080 

117SV_TYPE_DOMAIN_MEMBER = 0x00000100 

118SV_TYPE_LOCAL_LIST_ONLY = 0x40000000 

119SV_TYPE_PRINTQ_SERVER = 0x00000200 

120SV_TYPE_DIALIN_SERVER = 0x00000400 

121SV_TYPE_XENIX_SERVER = 0x00000800 

122SV_TYPE_SERVER_MFPN = 0x00004000 

123SV_TYPE_NT = 0x00001000 

124SV_TYPE_WFW = 0x00002000 

125SV_TYPE_SERVER_NT = 0x00008000 

126SV_TYPE_POTENTIAL_BROWSER = 0x00010000 

127SV_TYPE_BACKUP_BROWSER = 0x00020000 

128SV_TYPE_MASTER_BROWSER = 0x00040000 

129SV_TYPE_DOMAIN_MASTER = 0x00080000 

130SV_TYPE_DOMAIN_ENUM = 0x80000000 

131SV_TYPE_WINDOWS = 0x00400000 

132SV_TYPE_ALL = 0xFFFFFFFF 

133SV_TYPE_TERMINALSERVER = 0x02000000 

134SV_TYPE_CLUSTER_NT = 0x10000000 

135SV_TYPE_CLUSTER_VS_NT = 0x04000000 

136 

137# 2.2.2.8 Name Types 

138NAMETYPE_USER = 1 

139NAMETYPE_PASSWORD = 2 

140NAMETYPE_GROUP = 3 

141NAMETYPE_COMPUTER = 4 

142NAMETYPE_EVENT = 5 

143NAMETYPE_DOMAIN = 6 

144NAMETYPE_SERVICE = 7 

145NAMETYPE_NET = 8 

146NAMETYPE_SHARE = 9 

147NAMETYPE_MESSAGE = 10 

148NAMETYPE_MESSAGEDEST = 11 

149NAMETYPE_SHAREPASSWORD = 12 

150NAMETYPE_WORKGROUP = 13 

151 

152# 2.2.2.9 Path Types 

153ITYPE_UNC_COMPNAME = 4144 

154ITYPE_UNC_WC = 4145 

155ITYPE_UNC = 4096 

156ITYPE_UNC_WC_PATH = 4097 

157ITYPE_UNC_SYS_SEM = 6400 

158ITYPE_UNC_SYS_SHMEM = 6656 

159ITYPE_UNC_SYS_MSLOT = 6144 

160ITYPE_UNC_SYS_PIPE = 6912 

161ITYPE_UNC_SYS_QUEUE = 7680 

162ITYPE_PATH_ABSND = 8194 

163ITYPE_PATH_ABSD = 8198 

164ITYPE_PATH_RELND = 8192 

165ITYPE_PATH_RELD = 8196 

166ITYPE_PATH_ABSND_WC = 8195 

167ITYPE_PATH_ABSD_WC = 8199 

168ITYPE_PATH_RELND_WC = 8193 

169ITYPE_PATH_RELD_WC = 8197 

170ITYPE_PATH_SYS_SEM = 10498 

171ITYPE_PATH_SYS_SHMEM = 10754 

172ITYPE_PATH_SYS_MSLOT = 10242 

173ITYPE_PATH_SYS_PIPE = 11010 

174ITYPE_PATH_SYS_COMM = 11266 

175ITYPE_PATH_SYS_PRINT = 11522 

176ITYPE_PATH_SYS_QUEUE = 11778 

177ITYPE_PATH_SYS_SEM_M = 43266 

178ITYPE_PATH_SYS_SHMEM_M = 43522 

179ITYPE_PATH_SYS_MSLOT_M = 43010 

180ITYPE_PATH_SYS_PIPE_M = 43778 

181ITYPE_PATH_SYS_COMM_M = 44034 

182ITYPE_PATH_SYS_PRINT_M = 44290 

183ITYPE_PATH_SYS_QUEUE_M = 44546 

184ITYPE_DEVICE_DISK = 16384 

185ITYPE_DEVICE_LPT = 16400 

186ITYPE_DEVICE_COM = 16416 

187ITYPE_DEVICE_CON = 16448 

188ITYPE_DEVICE_NUL = 16464 

189 

190# 2.2.2.11 SHARE_INFO Parameter Error Codes 

191 

192SHARE_NETNAME_PARMNUM = 1 

193SHARE_TYPE_PARMNUM = 3 

194SHARE_REMARK_PARMNUM = 4 

195SHARE_PERMISSIONS_PARMNUM = 5 

196SHARE_MAX_USES_PARMNUM = 6 

197SHARE_CURRENT_USES_PARMNUM = 7 

198SHARE_PATH_PARMNUM = 8 

199SHARE_PASSWD_PARMNUM = 9 

200SHARE_FILE_SD_PARMNUM = 501 

201 

202# 2.2.2.12 SERVER_INFO Parameter Error Codes 

203SV_PLATFORM_ID_PARMNUM = 101 

204SV_NAME_PARMNUM = 102 

205SV_VERSION_MAJOR_PARMNUM = 103 

206SV_VERSION_MINOR_PARMNUM = 104 

207SV_TYPE_PARMNUM = 105 

208SV_COMMENT_PARMNUM = 5 

209SV_USERS_PARMNUM = 107 

210SV_DISC_PARMNUM = 10 

211SV_HIDDEN_PARMNUM = 16 

212SV_ANNOUNCE_PARMNUM = 17 

213SV_ANNDELTA_PARMNUM = 18 

214SV_USERPATH_PARMNUM = 112 

215SV_SESSOPENS_PARMNUM = 501 

216SV_SESSVCS_PARMNUM = 502 

217SV_OPENSEARCH_PARMNUM = 503 

218SV_SIZREQBUF_PARMNUM = 504 

219SV_INITWORKITEMS_PARMNUM = 505 

220SV_MAXWORKITEMS_PARMNUM = 506 

221SV_RAWWORKITEMS_PARMNUM = 507 

222SV_IRPSTACKSIZE_PARMNUM = 508 

223SV_MAXRAWBUFLEN_PARMNUM = 509 

224SV_SESSUSERS_PARMNUM = 510 

225SV_SESSCONNS_PARMNUM = 511 

226SV_MAXNONPAGEDMEMORYUSAGE_PARMNUM = 512 

227SV_MAXPAGEDMEMORYUSAGE_PARMNUM = 513 

228SV_ENABLESOFTCOMPAT_PARMNUM = 514 

229SV_ENABLEFORCEDLOGOFF_PARMNUM = 515 

230SV_TIMESOURCE_PARMNUM = 516 

231SV_ACCEPTDOWNLEVELAPIS_PARMNUM = 517 

232SV_LMANNOUNCE_PARMNUM = 518 

233SV_DOMAIN_PARMNUM = 519 

234SV_MAXCOPYREADLEN_PARMNUM = 520 

235SV_MAXCOPYWRITELEN_PARMNUM = 521 

236SV_MINKEEPSEARCH_PARMNUM = 522 

237SV_MAXKEEPSEARCH_PARMNUM = 523 

238SV_MINKEEPCOMPLSEARCH_PARMNUM = 524 

239SV_MAXKEEPCOMPLSEARCH_PARMNUM = 525 

240SV_THREADCOUNTADD_PARMNUM = 526 

241SV_NUMBLOCKTHREADS_PARMNUM = 527 

242SV_SCAVTIMEOUT_PARMNUM = 528 

243SV_MINRCVQUEUE_PARMNUM = 529 

244SV_MINFREEWORKITEMS_PARMNUM = 530 

245SV_XACTMEMSIZE_PARMNUM = 531 

246SV_THREADPRIORITY_PARMNUM = 532 

247SV_MAXMPXCT_PARMNUM = 533 

248SV_OPLOCKBREAKWAIT_PARMNUM = 534 

249SV_OPLOCKBREAKRESPONSEWAIT_PARMNUM = 535 

250SV_ENABLEOPLOCKS_PARMNUM = 536 

251SV_ENABLEOPLOCKFORCECLOSE_PARMNUM = 537 

252SV_ENABLEFCBOPENS_PARMNUM = 538 

253SV_ENABLERAW_PARMNUM = 539 

254SV_ENABLESHAREDNETDRIVES_PARMNUM = 540 

255SV_MINFREECONNECTIONS_PARMNUM = 541 

256SV_MAXFREECONNECTIONS_PARMNUM = 542 

257SV_INITSESSTABLE_PARMNUM = 543 

258SV_INITCONNTABLE_PARMNUM = 544 

259SV_INITFILETABLE_PARMNUM = 545 

260SV_INITSEARCHTABLE_PARMNUM = 546 

261SV_ALERTSCHEDULE_PARMNUM = 547 

262SV_ERRORTHRESHOLD_PARMNUM = 548 

263SV_NETWORKERRORTHRESHOLD_PARMNUM = 549 

264SV_DISKSPACETHRESHOLD_PARMNUM = 550 

265SV_MAXLINKDELAY_PARMNUM = 552 

266SV_MINLINKTHROUGHPUT_PARMNUM = 553 

267SV_LINKINFOVALIDTIME_PARMNUM = 554 

268SV_SCAVQOSINFOUPDATETIME_PARMNUM = 555 

269SV_MAXWORKITEMIDLETIME_PARMNUM = 556 

270 

271# 2.2.2.13 DFS Entry Flags 

272PKT_ENTRY_TYPE_CAIRO = 0x0001 

273PKT_ENTRY_TYPE_MACHINE = 0x0002 

274PKT_ENTRY_TYPE_NONCAIRO = 0x0004 

275PKT_ENTRY_TYPE_LEAFONLY = 0x0008 

276PKT_ENTRY_TYPE_OUTSIDE_MY_DOM = 0x0010 

277PKT_ENTRY_TYPE_INSITE_ONLY = 0x0020 

278PKT_ENTRY_TYPE_REFERRAL_SVC = 0x0080 

279PKT_ENTRY_TYPE_PERMANENT = 0x0100 

280PKT_ENTRY_TYPE_LOCAL = 0x0400 

281PKT_ENTRY_TYPE_LOCAL_XPOINT = 0x0800 

282PKT_ENTRY_TYPE_MACH_SHARE = 0x1000 

283PKT_ENTRY_TYPE_OFFLINE = 0x2000 

284 

285# 2.2.4.7 FILE_INFO_3  

286# fi3_permissions 

287PERM_FILE_READ = 0x00000001 

288PERM_FILE_WRITE = 0x00000002 

289PERM_FILE_CREATE = 0x00000004 

290ACCESS_EXEC = 0x00000008 

291ACCESS_DELETE = 0x00000010 

292ACCESS_ATRIB = 0x00000020 

293ACCESS_PERM = 0x00000040 

294 

295# 2.2.4.29 SHARE_INFO_1005 

296# shi1005_flags 

297SHI1005_FLAGS_DFS = 0x00000001 

298SHI1005_FLAGS_DFS_ROOT = 0x00000002 

299CSC_MASK = 0x00000030 

300SHI1005_FLAGS_RESTRICT_EXCLUSIVE_OPENS = 0x00000100 

301SHI1005_FLAGS_FORCE_SHARED_DELETE = 0x00000200 

302SHI1005_FLAGS_ALLOW_NAMESPACE_CACHING = 0x00000400 

303SHI1005_FLAGS_ACCESS_BASED_DIRECTORY_ENUM = 0x00000800 

304SHI1005_FLAGS_FORCE_LEVELII_OPLOCK = 0x00001000 

305SHI1005_FLAGS_ENABLE_HASH = 0x00002000 

306SHI1005_FLAGS_ENABLE_CA = 0x00004000 

307SHI1005_FLAGS_ENCRYPT_DATA = 0x00008000 

308 

309# 2.2.4.43 SERVER_INFO_103 

310# sv103_capabilities 

311SRV_SUPPORT_HASH_GENERATION = 0x0001 

312SRV_HASH_GENERATION_ACTIVE = 0x0002 

313 

314# 2.2.4.96 SERVER_TRANSPORT_INFO_3 

315# svti3_flags 

316SVTI2_REMAP_PIPE_NAMES = 0x00000002 

317SVTI2_SCOPED_NAME = 0x00000004 

318 

319# 2.2.4.109 DFS_SITENAME_INFO 

320# SiteFlags 

321DFS_SITE_PRIMARY = 0x00000001 

322 

323# 3.1.4.42 NetrDfsFixLocalVolume (Opnum 51) 

324# ServiceType 

325DFS_SERVICE_TYPE_MASTER = 0x00000001 

326DFS_SERVICE_TYPE_READONLY = 0x00000002 

327DFS_SERVICE_TYPE_LOCAL = 0x00000004 

328DFS_SERVICE_TYPE_REFERRAL = 0x00000008 

329DFS_SERVICE_TYPE_ACTIVE = 0x000000010 

330DFS_SERVICE_TYPE_DOWN_LEVEL = 0x000000020 

331DFS_SERVICE_TYPE_COSTLIER = 0x000000040 

332DFS_SERVICE_TYPE_OFFLINE = 0x000000080 

333 

334# CreateDisposition 

335FILE_SUPERSEDE = 0x00000000 

336FILE_OPEN = 0x00000001 

337FILE_CREATE = 0x00000002 

338 

339################################################################################ 

340# STRUCTURES 

341################################################################################ 

342# 2.2.4.1 CONNECTION_INFO_0 

343class CONNECTION_INFO_0(NDRSTRUCT): 

344 structure = ( 

345 ('coni0_id', DWORD), 

346 ) 

347 

348class CONNECTION_INFO_0_ARRAY(NDRUniConformantArray): 

349 item = CONNECTION_INFO_0 

350 

351class LPCONNECTION_INFO_0_ARRAY(NDRPOINTER): 

352 referent = ( 

353 ('Data', CONNECTION_INFO_0_ARRAY), 

354 ) 

355 

356# 2.2.4.2 CONNECTION_INFO_1 

357class CONNECTION_INFO_1(NDRSTRUCT): 

358 structure = ( 

359 ('coni1_id', DWORD), 

360 ('coni1_type', DWORD), 

361 ('coni1_num_opens', DWORD), 

362 ('coni1_num_users', DWORD), 

363 ('coni1_time', DWORD), 

364 ('coni1_username', LPWSTR), 

365 ('coni1_netname', LPWSTR), 

366 ) 

367 

368class CONNECTION_INFO_1_ARRAY(NDRUniConformantArray): 

369 item = CONNECTION_INFO_1 

370 

371class LPCONNECTION_INFO_1_ARRAY(NDRPOINTER): 

372 referent = ( 

373 ('Data', CONNECTION_INFO_1_ARRAY), 

374 ) 

375 

376# 2.2.4.3 CONNECT_INFO_0_CONTAINER 

377class CONNECT_INFO_0_CONTAINER(NDRSTRUCT): 

378 structure = ( 

379 ('EntriesRead', DWORD), 

380 ('Buffer', LPCONNECTION_INFO_0_ARRAY), 

381 ) 

382 

383class LPCONNECT_INFO_0_CONTAINER(NDRPOINTER): 

384 referent = ( 

385 ('Data', CONNECT_INFO_0_CONTAINER), 

386 ) 

387 

388# 2.2.4.4 CONNECT_INFO_1_CONTAINER 

389class CONNECT_INFO_1_CONTAINER(NDRSTRUCT): 

390 structure = ( 

391 ('EntriesRead', DWORD), 

392 ('Buffer', LPCONNECTION_INFO_1_ARRAY), 

393 ) 

394 

395class LPCONNECT_INFO_1_CONTAINER(NDRPOINTER): 

396 referent = ( 

397 ('Data', CONNECT_INFO_1_CONTAINER), 

398 ) 

399 

400# 2.2.3.1 CONNECT_ENUM_UNION 

401class CONNECT_ENUM_UNION(NDRUNION): 

402 commonHdr = ( 

403 ('tag', DWORD), 

404 ) 

405 

406 union = { 

407 0: ('Level0', LPCONNECT_INFO_0_CONTAINER), 

408 1: ('Level1', LPCONNECT_INFO_1_CONTAINER), 

409 } 

410 

411# 2.2.4.5 CONNECT_ENUM_STRUCT 

412class CONNECT_ENUM_STRUCT(NDRSTRUCT): 

413 structure = ( 

414 ('Level', DWORD), 

415 ('ConnectInfo', CONNECT_ENUM_UNION), 

416 ) 

417 

418# 2.2.4.6 FILE_INFO_2 

419class FILE_INFO_2(NDRSTRUCT): 

420 structure = ( 

421 ('fi2_id', DWORD), 

422 ) 

423 

424class LPFILE_INFO_2(NDRPOINTER): 

425 referent = ( 

426 ('Data', FILE_INFO_2), 

427 ) 

428 

429class FILE_INFO_2_ARRAY(NDRUniConformantArray): 

430 item = FILE_INFO_2 

431 

432class LPFILE_INFO_2_ARRAY(NDRPOINTER): 

433 referent = ( 

434 ('Data', FILE_INFO_2_ARRAY), 

435 ) 

436 

437# 2.2.4.7 FILE_INFO_3 

438class FILE_INFO_3(NDRSTRUCT): 

439 structure = ( 

440 ('fi3_id', DWORD), 

441 ('fi3_permissions', DWORD), 

442 ('fi3_num_locks', DWORD), 

443 ('fi3_path_name', LPWSTR), 

444 ('fi3_username', LPWSTR), 

445 ) 

446 

447class LPFILE_INFO_3(NDRPOINTER): 

448 referent = ( 

449 ('Data', FILE_INFO_3), 

450 ) 

451 

452class FILE_INFO_3_ARRAY(NDRUniConformantArray): 

453 item = FILE_INFO_3 

454 

455class LPFILE_INFO_3_ARRAY(NDRPOINTER): 

456 referent = ( 

457 ('Data', FILE_INFO_3_ARRAY), 

458 ) 

459 

460# 2.2.4.8 FILE_INFO_2_CONTAINER 

461class FILE_INFO_2_CONTAINER(NDRSTRUCT): 

462 structure = ( 

463 ('EntriesRead', DWORD), 

464 ('Buffer', LPFILE_INFO_2_ARRAY), 

465 ) 

466 

467class LPFILE_INFO_2_CONTAINER(NDRPOINTER): 

468 referent = ( 

469 ('Data', FILE_INFO_2_CONTAINER), 

470 ) 

471 

472# 2.2.4.9 FILE_INFO_3_CONTAINER 

473class FILE_INFO_3_CONTAINER(NDRSTRUCT): 

474 structure = ( 

475 ('EntriesRead', DWORD), 

476 ('Buffer', LPFILE_INFO_3_ARRAY), 

477 ) 

478 

479class LPFILE_INFO_3_CONTAINER(NDRPOINTER): 

480 referent = ( 

481 ('Data', FILE_INFO_3_CONTAINER), 

482 ) 

483 

484# 2.2.3.2 FILE_ENUM_UNION 

485class FILE_ENUM_UNION(NDRUNION): 

486 commonHdr = ( 

487 ('tag', DWORD), 

488 ) 

489 

490 union = { 

491 2: ('Level2', LPFILE_INFO_2_CONTAINER), 

492 3: ('Level3', LPFILE_INFO_3_CONTAINER), 

493 } 

494 

495# 2.2.4.10 FILE_ENUM_STRUCT 

496class FILE_ENUM_STRUCT(NDRSTRUCT): 

497 structure = ( 

498 ('Level', DWORD), 

499 ('FileInfo', FILE_ENUM_UNION), 

500 ) 

501 

502# 2.2.4.11 SESSION_INFO_0 

503class SESSION_INFO_0(NDRSTRUCT): 

504 structure = ( 

505 ('sesi0_cname', LPWSTR), 

506 ) 

507 

508class LPSESSION_INFO_0(NDRPOINTER): 

509 referent = ( 

510 ('Data', SESSION_INFO_0), 

511 ) 

512 

513class SESSION_INFO_0_ARRAY(NDRUniConformantArray): 

514 item = SESSION_INFO_0 

515 

516class LPSESSION_INFO_0_ARRAY(NDRPOINTER): 

517 referent = ( 

518 ('Data', SESSION_INFO_0_ARRAY), 

519 ) 

520 

521# 2.2.4.12 SESSION_INFO_1 

522class SESSION_INFO_1(NDRSTRUCT): 

523 structure = ( 

524 ('sesi1_cname', LPWSTR), 

525 ('sesi1_username', LPWSTR), 

526 ('sesi1_num_opens', DWORD), 

527 ('sesi1_time', DWORD), 

528 ('sesi1_idle_time', DWORD), 

529 ('sesi1_user_flags', DWORD), 

530 ) 

531 

532class LPSESSION_INFO_1(NDRPOINTER): 

533 referent = ( 

534 ('Data', SESSION_INFO_1), 

535 ) 

536 

537class SESSION_INFO_1_ARRAY(NDRUniConformantArray): 

538 item = SESSION_INFO_1 

539 

540class LPSESSION_INFO_1_ARRAY(NDRPOINTER): 

541 referent = ( 

542 ('Data', SESSION_INFO_1_ARRAY), 

543 ) 

544 

545# 2.2.4.13 SESSION_INFO_2 

546class SESSION_INFO_2(NDRSTRUCT): 

547 structure = ( 

548 ('sesi2_cname', LPWSTR), 

549 ('sesi2_username', LPWSTR), 

550 ('sesi2_num_opens', DWORD), 

551 ('sesi2_time', DWORD), 

552 ('sesi2_idle_time', DWORD), 

553 ('sesi2_user_flags', DWORD), 

554 ('sesi2_cltype_name', LPWSTR), 

555 ) 

556 

557class LPSESSION_INFO_2(NDRPOINTER): 

558 referent = ( 

559 ('Data', SESSION_INFO_2), 

560 ) 

561 

562class SESSION_INFO_2_ARRAY(NDRUniConformantArray): 

563 item = SESSION_INFO_2 

564 

565class LPSESSION_INFO_2_ARRAY(NDRPOINTER): 

566 referent = ( 

567 ('Data', SESSION_INFO_2_ARRAY), 

568 ) 

569 

570# 2.2.4.14 SESSION_INFO_10 

571class SESSION_INFO_10(NDRSTRUCT): 

572 structure = ( 

573 ('sesi10_cname', LPWSTR), 

574 ('sesi10_username', LPWSTR), 

575 ('sesi10_time', DWORD), 

576 ('sesi10_idle_time', DWORD), 

577 ) 

578 

579class LPSESSION_INFO_10(NDRPOINTER): 

580 referent = ( 

581 ('Data', SESSION_INFO_10), 

582 ) 

583 

584class SESSION_INFO_10_ARRAY(NDRUniConformantArray): 

585 item = SESSION_INFO_10 

586 

587class LPSESSION_INFO_10_ARRAY(NDRPOINTER): 

588 referent = ( 

589 ('Data', SESSION_INFO_10_ARRAY), 

590 ) 

591 

592# 2.2.4.15 SESSION_INFO_502 

593class SESSION_INFO_502(NDRSTRUCT): 

594 structure = ( 

595 ('sesi502_cname', LPWSTR), 

596 ('sesi502_username', LPWSTR), 

597 ('sesi502_num_opens', DWORD), 

598 ('sesi502_time', DWORD), 

599 ('sesi502_idle_time', DWORD), 

600 ('sesi502_user_flags', DWORD), 

601 ('sesi502_cltype_name', LPWSTR), 

602 ('sesi502_transport', LPWSTR), 

603 ) 

604 

605class LPSESSION_INFO_502(NDRPOINTER): 

606 referent = ( 

607 ('Data', SESSION_INFO_502), 

608 ) 

609 

610class SESSION_INFO_502_ARRAY(NDRUniConformantArray): 

611 item = SESSION_INFO_502 

612 

613class LPSESSION_INFO_502_ARRAY(NDRPOINTER): 

614 referent = ( 

615 ('Data', SESSION_INFO_502_ARRAY), 

616 ) 

617 

618# 2.2.4.16 SESSION_INFO_0_CONTAINER 

619class SESSION_INFO_0_CONTAINER(NDRSTRUCT): 

620 structure = ( 

621 ('EntriesRead', DWORD), 

622 ('Buffer', LPSESSION_INFO_0_ARRAY), 

623 ) 

624 

625class LPSESSION_INFO_0_CONTAINER(NDRPOINTER): 

626 referent = ( 

627 ('Data', SESSION_INFO_0_CONTAINER), 

628 ) 

629 

630# 2.2.4.17 SESSION_INFO_1_CONTAINER 

631class SESSION_INFO_1_CONTAINER(NDRSTRUCT): 

632 structure = ( 

633 ('EntriesRead', DWORD), 

634 ('Buffer', LPSESSION_INFO_1_ARRAY), 

635 ) 

636 

637class LPSESSION_INFO_1_CONTAINER(NDRPOINTER): 

638 referent = ( 

639 ('Data', SESSION_INFO_1_CONTAINER), 

640 ) 

641 

642# 2.2.4.18 SESSION_INFO_2_CONTAINER 

643class SESSION_INFO_2_CONTAINER(NDRSTRUCT): 

644 structure = ( 

645 ('EntriesRead', DWORD), 

646 ('Buffer', LPSESSION_INFO_2_ARRAY), 

647 ) 

648 

649class LPSESSION_INFO_2_CONTAINER(NDRPOINTER): 

650 referent = ( 

651 ('Data', SESSION_INFO_2_CONTAINER), 

652 ) 

653 

654# 2.2.4.19 SESSION_INFO_10_CONTAINER 

655class SESSION_INFO_10_CONTAINER(NDRSTRUCT): 

656 structure = ( 

657 ('EntriesRead', DWORD), 

658 ('Buffer', LPSESSION_INFO_10_ARRAY), 

659 ) 

660 

661class LPSESSION_INFO_10_CONTAINER(NDRPOINTER): 

662 referent = ( 

663 ('Data', SESSION_INFO_10_CONTAINER), 

664 ) 

665 

666# 2.2.4.20 SESSION_INFO_502_CONTAINER 

667class SESSION_INFO_502_CONTAINER(NDRSTRUCT): 

668 structure = ( 

669 ('EntriesRead', DWORD), 

670 ('Buffer', LPSESSION_INFO_502_ARRAY), 

671 ) 

672 

673class LPSESSION_INFO_502_CONTAINER(NDRPOINTER): 

674 referent = ( 

675 ('Data', SESSION_INFO_502_CONTAINER), 

676 ) 

677 

678# 2.2.3.4 SESSION_ENUM_UNION 

679class SESSION_ENUM_UNION(NDRUNION): 

680 commonHdr = ( 

681 ('tag', DWORD), 

682 ) 

683 

684 union = { 

685 0: ('Level0', LPSESSION_INFO_0_CONTAINER), 

686 1: ('Level1', LPSESSION_INFO_1_CONTAINER), 

687 2: ('Level2', LPSESSION_INFO_2_CONTAINER), 

688 10: ('Level10', LPSESSION_INFO_10_CONTAINER), 

689 502: ('Level502', LPSESSION_INFO_502_CONTAINER), 

690 } 

691 

692# 2.2.4.21 SESSION_ENUM_STRUCT 

693class SESSION_ENUM_STRUCT(NDRSTRUCT): 

694 structure = ( 

695 ('Level', DWORD), 

696 ('SessionInfo', SESSION_ENUM_UNION), 

697 ) 

698 

699# 2.2.4.22 SHARE_INFO_0 

700class SHARE_INFO_0(NDRSTRUCT): 

701 structure = ( 

702 ('shi0_netname', LPWSTR), 

703 ) 

704 

705class LPSHARE_INFO_0(NDRPOINTER): 

706 referent = ( 

707 ('Data', SHARE_INFO_0), 

708 ) 

709 

710class SHARE_INFO_0_ARRAY(NDRUniConformantArray): 

711 item = SHARE_INFO_0 

712 

713class LPSHARE_INFO_0_ARRAY(NDRPOINTER): 

714 referent = ( 

715 ('Data', SHARE_INFO_0_ARRAY), 

716 ) 

717 

718# 2.2.4.23 SHARE_INFO_1 

719class SHARE_INFO_1(NDRSTRUCT): 

720 structure = ( 

721 ('shi1_netname', LPWSTR), 

722 ('shi1_type', DWORD), 

723 ('shi1_remark', LPWSTR), 

724 ) 

725 

726class LPSHARE_INFO_1(NDRPOINTER): 

727 referent = ( 

728 ('Data', SHARE_INFO_1), 

729 ) 

730 

731class SHARE_INFO_1_ARRAY(NDRUniConformantArray): 

732 item = SHARE_INFO_1 

733 

734class LPSHARE_INFO_1_ARRAY(NDRPOINTER): 

735 referent = ( 

736 ('Data', SHARE_INFO_1_ARRAY), 

737 ) 

738 

739# 2.2.4.24 SHARE_INFO_2 

740class SHARE_INFO_2(NDRSTRUCT): 

741 structure = ( 

742 ('shi2_netname', LPWSTR), 

743 ('shi2_type', DWORD), 

744 ('shi2_remark', LPWSTR), 

745 ('shi2_permissions', DWORD), 

746 ('shi2_max_uses', DWORD), 

747 ('shi2_current_uses', DWORD), 

748 ('shi2_path', LPWSTR), 

749 ('shi2_passwd', LPWSTR), 

750 ) 

751 

752class LPSHARE_INFO_2(NDRPOINTER): 

753 referent = ( 

754 ('Data', SHARE_INFO_2), 

755 ) 

756 

757class SHARE_INFO_2_ARRAY(NDRUniConformantArray): 

758 item = SHARE_INFO_2 

759 

760class LPSHARE_INFO_2_ARRAY(NDRPOINTER): 

761 referent = ( 

762 ('Data', SHARE_INFO_2_ARRAY), 

763 ) 

764 

765# 2.2.4.25 SHARE_INFO_501 

766class SHARE_INFO_501(NDRSTRUCT): 

767 structure = ( 

768 ('shi501_netname', LPWSTR), 

769 ('shi501_type', DWORD), 

770 ('shi501_remark', LPWSTR), 

771 ('shi501_flags', DWORD), 

772 ) 

773 

774class LPSHARE_INFO_501(NDRPOINTER): 

775 referent = ( 

776 ('Data', SHARE_INFO_501), 

777 ) 

778 

779class SHARE_INFO_501_ARRAY(NDRUniConformantArray): 

780 item = SHARE_INFO_501 

781 

782class LPSHARE_INFO_501_ARRAY(NDRPOINTER): 

783 referent = ( 

784 ('Data', SHARE_INFO_501_ARRAY), 

785 ) 

786 

787# 2.2.4.26 SHARE_INFO_502_I 

788class SHARE_INFO_502(NDRSTRUCT): 

789 structure = ( 

790 ('shi502_netname', LPWSTR), 

791 ('shi502_type', DWORD), 

792 ('shi502_remark', LPWSTR), 

793 ('shi502_permissions', DWORD), 

794 ('shi502_max_uses', DWORD), 

795 ('shi502_current_uses', DWORD), 

796 ('shi502_path', LPWSTR), 

797 ('shi502_passwd', LPWSTR), 

798 ('shi502_reserved', DWORD), 

799 ('shi502_security_descriptor', LPBYTE), 

800 ) 

801 

802class LPSHARE_INFO_502(NDRPOINTER): 

803 referent = ( 

804 ('Data', SHARE_INFO_502), 

805 ) 

806 

807class SHARE_INFO_502_ARRAY(NDRUniConformantArray): 

808 item = SHARE_INFO_502 

809 

810class LPSHARE_INFO_502_ARRAY(NDRPOINTER): 

811 referent = ( 

812 ('Data', SHARE_INFO_502_ARRAY), 

813 ) 

814 

815# 2.2.4.27 SHARE_INFO_503_I 

816class SHARE_INFO_503(NDRSTRUCT): 

817 structure = ( 

818 ('shi503_netname', LPWSTR), 

819 ('shi503_type', DWORD), 

820 ('shi503_remark', LPWSTR), 

821 ('shi503_permissions', DWORD), 

822 ('shi503_max_uses', DWORD), 

823 ('shi503_current_uses', DWORD), 

824 ('shi503_path', LPWSTR), 

825 ('shi503_passwd', LPWSTR), 

826 ('shi503_servername', LPWSTR), 

827 ('shi503_reserved', DWORD), 

828 ('shi503_security_descriptor', LPBYTE), 

829 ) 

830 

831class LPSHARE_INFO_503(NDRPOINTER): 

832 referent = ( 

833 ('Data', SHARE_INFO_503), 

834 ) 

835 

836class SHARE_INFO_503_ARRAY(NDRUniConformantArray): 

837 item = SHARE_INFO_503 

838 

839class LPSHARE_INFO_503_ARRAY(NDRPOINTER): 

840 referent = ( 

841 ('Data', SHARE_INFO_503_ARRAY), 

842 ) 

843 

844# 2.2.4.28 SHARE_INFO_1004 

845class SHARE_INFO_1004(NDRSTRUCT): 

846 structure = ( 

847 ('shi1004_remark', LPWSTR), 

848 ) 

849 

850class LPSHARE_INFO_1004(NDRPOINTER): 

851 referent = ( 

852 ('Data', SHARE_INFO_1004), 

853 ) 

854 

855class SHARE_INFO_1004_ARRAY(NDRUniConformantArray): 

856 item = SHARE_INFO_1004 

857 

858class LPSHARE_INFO_1004_ARRAY(NDRPOINTER): 

859 referent = ( 

860 ('Data', SHARE_INFO_1004_ARRAY), 

861 ) 

862 

863# 2.2.4.29 SHARE_INFO_1005 

864class SHARE_INFO_1005(NDRSTRUCT): 

865 structure = ( 

866 ('shi1005_flags', DWORD), 

867 ) 

868 

869class LPSHARE_INFO_1005(NDRPOINTER): 

870 referent = ( 

871 ('Data', SHARE_INFO_1005), 

872 ) 

873 

874class SHARE_INFO_1005_ARRAY(NDRUniConformantArray): 

875 item = SHARE_INFO_1004 

876 

877class LPSHARE_INFO_1005_ARRAY(NDRPOINTER): 

878 referent = ( 

879 ('Data', SHARE_INFO_1005_ARRAY), 

880 ) 

881 

882# 2.2.4.30 SHARE_INFO_1006 

883class SHARE_INFO_1006(NDRSTRUCT): 

884 structure = ( 

885 ('shi1006_max_uses', DWORD), 

886 ) 

887 

888class LPSHARE_INFO_1006(NDRPOINTER): 

889 referent = ( 

890 ('Data', SHARE_INFO_1006), 

891 ) 

892 

893class SHARE_INFO_1006_ARRAY(NDRUniConformantArray): 

894 item = SHARE_INFO_1006 

895 

896class LPSHARE_INFO_1006_ARRAY(NDRPOINTER): 

897 referent = ( 

898 ('Data', SHARE_INFO_1006_ARRAY), 

899 ) 

900 

901# 2.2.4.31 SHARE_INFO_1501_I 

902class SHARE_INFO_1501(NDRSTRUCT): 

903 structure = ( 

904 ('shi1501_reserved', DWORD), 

905 ('shi1501_security_descriptor', NDRUniConformantArray), 

906 ) 

907 

908class LPSHARE_INFO_1501(NDRPOINTER): 

909 referent = ( 

910 ('Data', SHARE_INFO_1501), 

911 ) 

912 

913class SHARE_INFO_1501_ARRAY(NDRUniConformantArray): 

914 item = SHARE_INFO_1501 

915 

916class LPSHARE_INFO_1501_ARRAY(NDRPOINTER): 

917 referent = ( 

918 ('Data', SHARE_INFO_1501_ARRAY), 

919 ) 

920 

921# 2.2.4.32 SHARE_INFO_0_CONTAINER 

922class SHARE_INFO_0_CONTAINER(NDRSTRUCT): 

923 structure = ( 

924 ('EntriesRead', DWORD), 

925 ('Buffer', LPSHARE_INFO_0_ARRAY), 

926 ) 

927 

928class LPSHARE_INFO_0_CONTAINER(NDRPOINTER): 

929 referent = ( 

930 ('Data', SHARE_INFO_0_CONTAINER), 

931 ) 

932 

933# 2.2.4.33 SHARE_INFO_1_CONTAINER 

934class SHARE_INFO_1_CONTAINER(NDRSTRUCT): 

935 structure = ( 

936 ('EntriesRead', DWORD), 

937 ('Buffer', LPSHARE_INFO_1_ARRAY), 

938 ) 

939 

940class LPSHARE_INFO_1_CONTAINER(NDRPOINTER): 

941 referent = ( 

942 ('Data', SHARE_INFO_1_CONTAINER), 

943 ) 

944 

945# 2.2.4.34 SHARE_INFO_2_CONTAINER 

946class SHARE_INFO_2_CONTAINER(NDRSTRUCT): 

947 structure = ( 

948 ('EntriesRead', DWORD), 

949 ('Buffer', LPSHARE_INFO_2_ARRAY), 

950 ) 

951 

952class LPSHARE_INFO_2_CONTAINER(NDRPOINTER): 

953 referent = ( 

954 ('Data', SHARE_INFO_2_CONTAINER), 

955 ) 

956 

957# 2.2.4.35 SHARE_INFO_501_CONTAINER 

958class SHARE_INFO_501_CONTAINER(NDRSTRUCT): 

959 structure = ( 

960 ('EntriesRead', DWORD), 

961 ('Buffer', LPSHARE_INFO_501_ARRAY), 

962 ) 

963 

964class LPSHARE_INFO_501_CONTAINER(NDRPOINTER): 

965 referent = ( 

966 ('Data', SHARE_INFO_501_CONTAINER), 

967 ) 

968 

969# 2.2.4.36 SHARE_INFO_502_CONTAINER 

970class SHARE_INFO_502_CONTAINER(NDRSTRUCT): 

971 structure = ( 

972 ('EntriesRead', DWORD), 

973 ('Buffer', LPSHARE_INFO_502_ARRAY), 

974 ) 

975 

976class LPSHARE_INFO_502_CONTAINER(NDRPOINTER): 

977 referent = ( 

978 ('Data', SHARE_INFO_502_CONTAINER), 

979 ) 

980 

981# 2.2.4.37 SHARE_INFO_503_CONTAINER 

982class SHARE_INFO_503_CONTAINER(NDRSTRUCT): 

983 structure = ( 

984 ('EntriesRead', DWORD), 

985 ('Buffer', LPSHARE_INFO_503_ARRAY), 

986 ) 

987 

988class LPSHARE_INFO_503_CONTAINER(NDRPOINTER): 

989 referent = ( 

990 ('Data', SHARE_INFO_503_CONTAINER), 

991 ) 

992 

993# 2.2.3.5 SHARE_ENUM_UNION 

994class SHARE_ENUM_UNION(NDRUNION): 

995 commonHdr = ( 

996 ('tag', DWORD), 

997 ) 

998 

999 union = { 

1000 0: ('Level0', LPSHARE_INFO_0_CONTAINER), 

1001 1: ('Level1', LPSHARE_INFO_1_CONTAINER), 

1002 2: ('Level2', LPSHARE_INFO_2_CONTAINER), 

1003 501: ('Level501', LPSHARE_INFO_501_CONTAINER), 

1004 502: ('Level502', LPSHARE_INFO_502_CONTAINER), 

1005 503: ('Level503', LPSHARE_INFO_503_CONTAINER), 

1006 } 

1007 

1008# 2.2.4.38 SHARE_ENUM_STRUCT 

1009class SHARE_ENUM_STRUCT(NDRSTRUCT): 

1010 structure = ( 

1011 ('Level', DWORD), 

1012 ('ShareInfo', SHARE_ENUM_UNION), 

1013 ) 

1014 

1015# 2.2.4.39 STAT_SERVER_0 

1016class STAT_SERVER_0(NDRSTRUCT): 

1017 structure = ( 

1018 ('sts0_start', DWORD), 

1019 ('sts0_fopens', DWORD), 

1020 ('sts0_devopens', DWORD), 

1021 ('sts0_jobsqueued', DWORD), 

1022 ('sts0_sopens', DWORD), 

1023 ('sts0_stimedout', DWORD), 

1024 ('sts0_serrorout', DWORD), 

1025 ('sts0_pwerrors', DWORD), 

1026 ('sts0_permerrors', DWORD), 

1027 ('sts0_syserrors', DWORD), 

1028 ('sts0_bytessent_low', DWORD), 

1029 ('sts0_bytessent_high', DWORD), 

1030 ('sts0_bytesrcvd_low', DWORD), 

1031 ('sts0_bytesrcvd_high', DWORD), 

1032 ('sts0_avresponse', DWORD), 

1033 ('sts0_reqbufneed', DWORD), 

1034 ('sts0_bigbufneed', DWORD), 

1035 ) 

1036 

1037class LPSTAT_SERVER_0(NDRPOINTER): 

1038 referent = ( 

1039 ('Data', STAT_SERVER_0), 

1040 ) 

1041 

1042# 2.2.4.40 SERVER_INFO_100 

1043class SERVER_INFO_100(NDRSTRUCT): 

1044 structure = ( 

1045 ('sv100_platform_id', DWORD), 

1046 ('sv100_name', LPWSTR), 

1047 ) 

1048 

1049class LPSERVER_INFO_100(NDRPOINTER): 

1050 referent = ( 

1051 ('Data', SERVER_INFO_100), 

1052 ) 

1053 

1054# 2.2.4.41 SERVER_INFO_101 

1055class SERVER_INFO_101(NDRSTRUCT): 

1056 structure = ( 

1057 ('sv101_platform_id', DWORD), 

1058 ('sv101_name', LPWSTR), 

1059 ('sv101_version_major', DWORD), 

1060 ('sv101_version_minor', DWORD), 

1061 ('sv101_type', DWORD), 

1062 ('sv101_comment', LPWSTR), 

1063 ) 

1064 

1065class LPSERVER_INFO_101(NDRPOINTER): 

1066 referent = ( 

1067 ('Data', SERVER_INFO_101), 

1068 ) 

1069 

1070# 2.2.4.42 SERVER_INFO_102 

1071class SERVER_INFO_102(NDRSTRUCT): 

1072 structure = ( 

1073 ('sv102_platform_id', DWORD), 

1074 ('sv102_name', LPWSTR), 

1075 ('sv102_version_major', DWORD), 

1076 ('sv102_version_minor', DWORD), 

1077 ('sv102_type', DWORD), 

1078 ('sv102_comment', LPWSTR), 

1079 ('sv102_users', DWORD), 

1080 ('sv102_disc', DWORD), 

1081 ('sv102_hidden', DWORD), 

1082 ('sv102_announce', DWORD), 

1083 ('sv102_anndelta', DWORD), 

1084 ('sv102_licenses', DWORD), 

1085 ('sv102_userpath', LPWSTR), 

1086 ) 

1087 

1088class LPSERVER_INFO_102(NDRPOINTER): 

1089 referent = ( 

1090 ('Data', SERVER_INFO_102), 

1091 ) 

1092 

1093# 2.2.4.43 SERVER_INFO_103 

1094class SERVER_INFO_103(NDRSTRUCT): 

1095 structure = ( 

1096 ('sv103_platform_id', DWORD), 

1097 ('sv103_name', LPWSTR), 

1098 ('sv103_version_major', DWORD), 

1099 ('sv103_version_minor', DWORD), 

1100 ('sv103_type', DWORD), 

1101 ('sv103_comment', LPWSTR), 

1102 ('sv103_users', DWORD), 

1103 ('sv103_disc', DWORD), 

1104 ('sv103_hidden', DWORD), 

1105 ('sv103_announce', DWORD), 

1106 ('sv103_anndelta', DWORD), 

1107 ('sv103_licenses', DWORD), 

1108 ('sv103_userpath', LPWSTR), 

1109 ('sv103_capabilities', DWORD), 

1110 ) 

1111 

1112class LPSERVER_INFO_103(NDRPOINTER): 

1113 referent = ( 

1114 ('Data', SERVER_INFO_103), 

1115 ) 

1116 

1117# 2.2.4.44 SERVER_INFO_502 

1118class SERVER_INFO_502(NDRSTRUCT): 

1119 structure = ( 

1120 ('sv502_sessopens', DWORD), 

1121 ('sv502_sessvcs', DWORD), 

1122 ('sv502_opensearch', DWORD), 

1123 ('sv502_sizreqbuf', DWORD), 

1124 ('sv502_initworkitems', DWORD), 

1125 ('sv502_maxworkitems', DWORD), 

1126 ('sv502_rawworkitems', DWORD), 

1127 ('sv502_irpstacksize', DWORD), 

1128 ('sv502_maxrawbuflen', DWORD), 

1129 ('sv502_sessusers', DWORD), 

1130 ('sv502_sessconns', DWORD), 

1131 ('sv502_maxpagedmemoryusage', DWORD), 

1132 ('sv502_maxnonpagedmemoryusage', DWORD), 

1133 ('sv502_enablesoftcompat', DWORD), 

1134 ('sv502_enableforcedlogoff', DWORD), 

1135 ('sv502_timesource', DWORD), 

1136 ('sv502_acceptdownlevelapis', DWORD), 

1137 ('sv502_lmannounce', DWORD), 

1138 ) 

1139 

1140class LPSERVER_INFO_502(NDRPOINTER): 

1141 referent = ( 

1142 ('Data', SERVER_INFO_502), 

1143 ) 

1144 

1145# 2.2.4.45 SERVER_INFO_503 

1146class SERVER_INFO_503(NDRSTRUCT): 

1147 structure = ( 

1148 ('sv503_sessopens', DWORD), 

1149 ('sv503_sessvcs', DWORD), 

1150 ('sv503_opensearch', DWORD), 

1151 ('sv503_sizreqbuf', DWORD), 

1152 ('sv503_initworkitems', DWORD), 

1153 ('sv503_maxworkitems', DWORD), 

1154 ('sv503_rawworkitems', DWORD), 

1155 ('sv503_irpstacksize', DWORD), 

1156 ('sv503_maxrawbuflen', DWORD), 

1157 ('sv503_sessusers', DWORD), 

1158 ('sv503_sessconns', DWORD), 

1159 ('sv503_maxpagedmemoryusage', DWORD), 

1160 ('sv503_maxnonpagedmemoryusage', DWORD), 

1161 ('sv503_enablesoftcompat', DWORD), 

1162 ('sv503_enableforcedlogoff', DWORD), 

1163 ('sv503_timesource', DWORD), 

1164 ('sv503_acceptdownlevelapis', DWORD), 

1165 ('sv503_lmannounce', DWORD), 

1166 ('sv503_domain', LPWSTR), 

1167 ('sv503_maxcopyreadlen', DWORD), 

1168 ('sv503_maxcopywritelen', DWORD), 

1169 ('sv503_minkeepsearch', DWORD), 

1170 ('sv503_maxkeepsearch', DWORD), 

1171 ('sv503_minkeepcomplsearch', DWORD), 

1172 ('sv503_maxkeepcomplsearch', DWORD), 

1173 ('sv503_threadcountadd', DWORD), 

1174 ('sv503_numblockthreads', DWORD), 

1175 ('sv503_scavtimeout', DWORD), 

1176 ('sv503_minrcvqueue', DWORD), 

1177 ('sv503_minfreeworkitems', DWORD), 

1178 ('sv503_xactmemsize', DWORD), 

1179 ('sv503_threadpriority', DWORD), 

1180 ('sv503_maxmpxct', DWORD), 

1181 ('sv503_oplockbreakwait', DWORD), 

1182 ('sv503_oplockbreakresponsewait', DWORD), 

1183 ('sv503_enableoplocks', DWORD), 

1184 ('sv503_enableoplockforceclose', DWORD), 

1185 ('sv503_enablefcbopens', DWORD), 

1186 ('sv503_enableraw', DWORD), 

1187 ('sv503_enablesharednetdrives', DWORD), 

1188 ('sv503_minfreeconnections', DWORD), 

1189 ('sv503_maxfreeconnections', DWORD), 

1190 ) 

1191 

1192class LPSERVER_INFO_503(NDRPOINTER): 

1193 referent = ( 

1194 ('Data', SERVER_INFO_503), 

1195 ) 

1196 

1197# 2.2.4.46 SERVER_INFO_599 

1198class SERVER_INFO_599(NDRSTRUCT): 

1199 structure = ( 

1200 ('sv599_sessopens', DWORD), 

1201 ('sv599_sessvcs', DWORD), 

1202 ('sv599_opensearch', DWORD), 

1203 ('sv599_sizreqbuf', DWORD), 

1204 ('sv599_initworkitems', DWORD), 

1205 ('sv599_maxworkitems', DWORD), 

1206 ('sv599_rawworkitems', DWORD), 

1207 ('sv599_irpstacksize', DWORD), 

1208 ('sv599_maxrawbuflen', DWORD), 

1209 ('sv599_sessusers', DWORD), 

1210 ('sv599_sessconns', DWORD), 

1211 ('sv599_maxpagedmemoryusage', DWORD), 

1212 ('sv599_maxnonpagedmemoryusage', DWORD), 

1213 ('sv599_enablesoftcompat', DWORD), 

1214 ('sv599_enableforcedlogoff', DWORD), 

1215 ('sv599_timesource', DWORD), 

1216 ('sv599_acceptdownlevelapis', DWORD), 

1217 ('sv599_lmannounce', DWORD), 

1218 ('sv599_domain', LPWSTR), 

1219 ('sv599_maxcopyreadlen', DWORD), 

1220 ('sv599_maxcopywritelen', DWORD), 

1221 ('sv599_minkeepsearch', DWORD), 

1222 ('sv599_maxkeepsearch', DWORD), 

1223 ('sv599_minkeepcomplsearch', DWORD), 

1224 ('sv599_maxkeepcomplsearch', DWORD), 

1225 ('sv599_threadcountadd', DWORD), 

1226 ('sv599_numblockthreads', DWORD), 

1227 ('sv599_scavtimeout', DWORD), 

1228 ('sv599_minrcvqueue', DWORD), 

1229 ('sv599_minfreeworkitems', DWORD), 

1230 ('sv599_xactmemsize', DWORD), 

1231 ('sv599_threadpriority', DWORD), 

1232 ('sv599_maxmpxct', DWORD), 

1233 ('sv599_oplockbreakwait', DWORD), 

1234 ('sv599_oplockbreakresponsewait', DWORD), 

1235 ('sv599_enableoplocks', DWORD), 

1236 ('sv599_enableoplockforceclose', DWORD), 

1237 ('sv599_enablefcbopens', DWORD), 

1238 ('sv599_enableraw', DWORD), 

1239 ('sv599_enablesharednetdrives', DWORD), 

1240 ('sv599_minfreeconnections', DWORD), 

1241 ('sv599_maxfreeconnections', DWORD), 

1242 ('sv599_initsesstable', DWORD), 

1243 ('sv599_initconntable', DWORD), 

1244 ('sv599_initfiletable', DWORD), 

1245 ('sv599_initsearchtable', DWORD), 

1246 ('sv599_alertschedule', DWORD), 

1247 ('sv599_errorthreshold', DWORD), 

1248 ('sv599_networkerrorthreshold', DWORD), 

1249 ('sv599_diskspacethreshold', DWORD), 

1250 ('sv599_reserved', DWORD), 

1251 ('sv599_maxlinkdelay', DWORD), 

1252 ('sv599_minlinkthroughput', DWORD), 

1253 ('sv599_linkinfovalidtime', DWORD), 

1254 ('sv599_scavqosinfoupdatetime', DWORD), 

1255 ('sv599_maxworkitemidletime', DWORD), 

1256 ) 

1257 

1258class LPSERVER_INFO_599(NDRPOINTER): 

1259 referent = ( 

1260 ('Data', SERVER_INFO_599), 

1261 ) 

1262 

1263# 2.2.4.47 SERVER_INFO_1005 

1264class SERVER_INFO_1005(NDRSTRUCT): 

1265 structure = ( 

1266 ('sv1005_comment', LPWSTR), 

1267 ) 

1268 

1269class LPSERVER_INFO_1005(NDRPOINTER): 

1270 referent = ( 

1271 ('Data', SERVER_INFO_1005), 

1272 ) 

1273 

1274# 2.2.4.48 SERVER_INFO_1107 

1275class SERVER_INFO_1107(NDRSTRUCT): 

1276 structure = ( 

1277 ('sv1107_users', DWORD), 

1278 ) 

1279 

1280class LPSERVER_INFO_1107(NDRPOINTER): 

1281 referent = ( 

1282 ('Data', SERVER_INFO_1107), 

1283 ) 

1284 

1285# 2.2.4.49 SERVER_INFO_1010 

1286class SERVER_INFO_1010(NDRSTRUCT): 

1287 structure = ( 

1288 ('sv1010_disc', DWORD), 

1289 ) 

1290 

1291class LPSERVER_INFO_1010(NDRPOINTER): 

1292 referent = ( 

1293 ('Data', SERVER_INFO_1010), 

1294 ) 

1295 

1296# 2.2.4.50 SERVER_INFO_1016 

1297class SERVER_INFO_1016(NDRSTRUCT): 

1298 structure = ( 

1299 ('sv1016_hidden', DWORD), 

1300 ) 

1301 

1302class LPSERVER_INFO_1016(NDRPOINTER): 

1303 referent = ( 

1304 ('Data', SERVER_INFO_1016), 

1305 ) 

1306 

1307# 2.2.4.51 SERVER_INFO_1017 

1308class SERVER_INFO_1017(NDRSTRUCT): 

1309 structure = ( 

1310 ('sv1017_announce', DWORD), 

1311 ) 

1312 

1313class LPSERVER_INFO_1017(NDRPOINTER): 

1314 referent = ( 

1315 ('Data', SERVER_INFO_1017), 

1316 ) 

1317 

1318# 2.2.4.52 SERVER_INFO_1018 

1319class SERVER_INFO_1018(NDRSTRUCT): 

1320 structure = ( 

1321 ('sv1018_anndelta', DWORD), 

1322 ) 

1323 

1324class LPSERVER_INFO_1018(NDRPOINTER): 

1325 referent = ( 

1326 ('Data', SERVER_INFO_1018), 

1327 ) 

1328 

1329# 2.2.4.53 SERVER_INFO_1501 

1330class SERVER_INFO_1501(NDRSTRUCT): 

1331 structure = ( 

1332 ('sv1501_sessopens', DWORD), 

1333 ) 

1334 

1335class LPSERVER_INFO_1501(NDRPOINTER): 

1336 referent = ( 

1337 ('Data', SERVER_INFO_1501), 

1338 ) 

1339 

1340# 2.2.4.54 SERVER_INFO_1502 

1341class SERVER_INFO_1502(NDRSTRUCT): 

1342 structure = ( 

1343 ('sv1502_sessvcs', DWORD), 

1344 ) 

1345 

1346class LPSERVER_INFO_1502(NDRPOINTER): 

1347 referent = ( 

1348 ('Data', SERVER_INFO_1502), 

1349 ) 

1350 

1351# 2.2.4.55 SERVER_INFO_1503 

1352class SERVER_INFO_1503(NDRSTRUCT): 

1353 structure = ( 

1354 ('sv1503_opensearch', DWORD), 

1355 ) 

1356 

1357class LPSERVER_INFO_1503(NDRPOINTER): 

1358 referent = ( 

1359 ('Data', SERVER_INFO_1503), 

1360 ) 

1361 

1362# 2.2.4.56 SERVER_INFO_1506 

1363class SERVER_INFO_1506(NDRSTRUCT): 

1364 structure = ( 

1365 ('sv1506_maxworkitems', DWORD), 

1366 ) 

1367 

1368class LPSERVER_INFO_1506(NDRPOINTER): 

1369 referent = ( 

1370 ('Data', SERVER_INFO_1506), 

1371 ) 

1372 

1373# 2.2.4.57 SERVER_INFO_1510 

1374class SERVER_INFO_1510(NDRSTRUCT): 

1375 structure = ( 

1376 ('sv1510_sessusers', DWORD), 

1377 ) 

1378 

1379class LPSERVER_INFO_1510(NDRPOINTER): 

1380 referent = ( 

1381 ('Data', SERVER_INFO_1510), 

1382 ) 

1383 

1384# 2.2.4.58 SERVER_INFO_1511 

1385class SERVER_INFO_1511(NDRSTRUCT): 

1386 structure = ( 

1387 ('sv1511_sessconns', DWORD), 

1388 ) 

1389 

1390class LPSERVER_INFO_1511(NDRPOINTER): 

1391 referent = ( 

1392 ('Data', SERVER_INFO_1511), 

1393 ) 

1394 

1395# 2.2.4.59 SERVER_INFO_1512 

1396class SERVER_INFO_1512(NDRSTRUCT): 

1397 structure = ( 

1398 ('sv1512_maxnonpagedmemoryusage', DWORD), 

1399 ) 

1400 

1401class LPSERVER_INFO_1512(NDRPOINTER): 

1402 referent = ( 

1403 ('Data', SERVER_INFO_1512), 

1404 ) 

1405 

1406# 2.2.4.60 SERVER_INFO_1513 

1407class SERVER_INFO_1513(NDRSTRUCT): 

1408 structure = ( 

1409 ('sv1513_maxpagedmemoryusage', DWORD), 

1410 ) 

1411 

1412class LPSERVER_INFO_1513(NDRPOINTER): 

1413 referent = ( 

1414 ('Data', SERVER_INFO_1513), 

1415 ) 

1416 

1417# 2.2.4.61 SERVER_INFO_1514 

1418class SERVER_INFO_1514(NDRSTRUCT): 

1419 structure = ( 

1420 ('sv1514_enablesoftcompat', DWORD), 

1421 ) 

1422 

1423class LPSERVER_INFO_1514(NDRPOINTER): 

1424 referent = ( 

1425 ('Data', SERVER_INFO_1514), 

1426 ) 

1427 

1428# 2.2.4.62 SERVER_INFO_1515 

1429class SERVER_INFO_1515(NDRSTRUCT): 

1430 structure = ( 

1431 ('sv1515_enableforcedlogoff', DWORD), 

1432 ) 

1433 

1434class LPSERVER_INFO_1515(NDRPOINTER): 

1435 referent = ( 

1436 ('Data', SERVER_INFO_1515), 

1437 ) 

1438 

1439# 2.2.4.63 SERVER_INFO_1516 

1440class SERVER_INFO_1516(NDRSTRUCT): 

1441 structure = ( 

1442 ('sv1516_timesource', DWORD), 

1443 ) 

1444 

1445class LPSERVER_INFO_1516(NDRPOINTER): 

1446 referent = ( 

1447 ('Data', SERVER_INFO_1516), 

1448 ) 

1449 

1450# 2.2.4.64 SERVER_INFO_1518 

1451class SERVER_INFO_1518(NDRSTRUCT): 

1452 structure = ( 

1453 ('sv1518_lmannounce', DWORD), 

1454 ) 

1455 

1456class LPSERVER_INFO_1518(NDRPOINTER): 

1457 referent = ( 

1458 ('Data', SERVER_INFO_1518), 

1459 ) 

1460 

1461# 2.2.4.65 SERVER_INFO_1523 

1462class SERVER_INFO_1523(NDRSTRUCT): 

1463 structure = ( 

1464 ('sv1523_maxkeepsearch', DWORD), 

1465 ) 

1466 

1467class LPSERVER_INFO_1523(NDRPOINTER): 

1468 referent = ( 

1469 ('Data', SERVER_INFO_1523), 

1470 ) 

1471 

1472# 2.2.4.66 SERVER_INFO_1528 

1473class SERVER_INFO_1528(NDRSTRUCT): 

1474 structure = ( 

1475 ('sv1528_scavtimeout', DWORD), 

1476 ) 

1477 

1478class LPSERVER_INFO_1528(NDRPOINTER): 

1479 referent = ( 

1480 ('Data', SERVER_INFO_1528), 

1481 ) 

1482 

1483# 2.2.4.67 SERVER_INFO_1529 

1484class SERVER_INFO_1529(NDRSTRUCT): 

1485 structure = ( 

1486 ('sv1529_minrcvqueue', DWORD), 

1487 ) 

1488 

1489class LPSERVER_INFO_1529(NDRPOINTER): 

1490 referent = ( 

1491 ('Data', SERVER_INFO_1529), 

1492 ) 

1493 

1494# 2.2.4.68 SERVER_INFO_1530 

1495class SERVER_INFO_1530(NDRSTRUCT): 

1496 structure = ( 

1497 ('sv1530_minfreeworkitems', DWORD), 

1498 ) 

1499 

1500class LPSERVER_INFO_1530(NDRPOINTER): 

1501 referent = ( 

1502 ('Data', SERVER_INFO_1530), 

1503 ) 

1504 

1505# 2.2.4.69 SERVER_INFO_1533 

1506class SERVER_INFO_1533(NDRSTRUCT): 

1507 structure = ( 

1508 ('sv1533_maxmpxct', DWORD), 

1509 ) 

1510 

1511class LPSERVER_INFO_1533(NDRPOINTER): 

1512 referent = ( 

1513 ('Data', SERVER_INFO_1533), 

1514 ) 

1515 

1516# 2.2.4.70 SERVER_INFO_1534 

1517class SERVER_INFO_1534(NDRSTRUCT): 

1518 structure = ( 

1519 ('sv1534_oplockbreakwait', DWORD), 

1520 ) 

1521 

1522class LPSERVER_INFO_1534(NDRPOINTER): 

1523 referent = ( 

1524 ('Data', SERVER_INFO_1534), 

1525 ) 

1526 

1527# 2.2.4.71 SERVER_INFO_1535 

1528class SERVER_INFO_1535(NDRSTRUCT): 

1529 structure = ( 

1530 ('sv1535_oplockbreakresponsewait', DWORD), 

1531 ) 

1532 

1533class LPSERVER_INFO_1535(NDRPOINTER): 

1534 referent = ( 

1535 ('Data', SERVER_INFO_1535), 

1536 ) 

1537 

1538# 2.2.4.72 SERVER_INFO_1536 

1539class SERVER_INFO_1536(NDRSTRUCT): 

1540 structure = ( 

1541 ('sv1536_enableoplocks', DWORD), 

1542 ) 

1543 

1544class LPSERVER_INFO_1536(NDRPOINTER): 

1545 referent = ( 

1546 ('Data', SERVER_INFO_1536), 

1547 ) 

1548 

1549# 2.2.4.73 SERVER_INFO_1538 

1550class SERVER_INFO_1538(NDRSTRUCT): 

1551 structure = ( 

1552 ('sv1538_enablefcbopens', DWORD), 

1553 ) 

1554 

1555class LPSERVER_INFO_1538(NDRPOINTER): 

1556 referent = ( 

1557 ('Data', SERVER_INFO_1538), 

1558 ) 

1559 

1560# 2.2.4.74 SERVER_INFO_1539 

1561class SERVER_INFO_1539(NDRSTRUCT): 

1562 structure = ( 

1563 ('sv1539_enableraw', DWORD), 

1564 ) 

1565 

1566class LPSERVER_INFO_1539(NDRPOINTER): 

1567 referent = ( 

1568 ('Data', SERVER_INFO_1539), 

1569 ) 

1570 

1571# 2.2.4.75 SERVER_INFO_1540 

1572class SERVER_INFO_1540(NDRSTRUCT): 

1573 structure = ( 

1574 ('sv1540_enablesharednetdrives', DWORD), 

1575 ) 

1576 

1577class LPSERVER_INFO_1540(NDRPOINTER): 

1578 referent = ( 

1579 ('Data', SERVER_INFO_1540), 

1580 ) 

1581 

1582# 2.2.4.76 SERVER_INFO_1541 

1583class SERVER_INFO_1541(NDRSTRUCT): 

1584 structure = ( 

1585 ('sv1541_minfreeconnections', DWORD), 

1586 ) 

1587 

1588class LPSERVER_INFO_1541(NDRPOINTER): 

1589 referent = ( 

1590 ('Data', SERVER_INFO_1541), 

1591 ) 

1592 

1593# 2.2.4.77 SERVER_INFO_1542 

1594class SERVER_INFO_1542(NDRSTRUCT): 

1595 structure = ( 

1596 ('sv1542_maxfreeconnections', DWORD), 

1597 ) 

1598 

1599class LPSERVER_INFO_1542(NDRPOINTER): 

1600 referent = ( 

1601 ('Data', SERVER_INFO_1542), 

1602 ) 

1603 

1604# 2.2.4.78 SERVER_INFO_1543 

1605class SERVER_INFO_1543(NDRSTRUCT): 

1606 structure = ( 

1607 ('sv1543_initsesstable', DWORD), 

1608 ) 

1609 

1610class LPSERVER_INFO_1543(NDRPOINTER): 

1611 referent = ( 

1612 ('Data', SERVER_INFO_1543), 

1613 ) 

1614 

1615# 2.2.4.79 SERVER_INFO_1544 

1616class SERVER_INFO_1544(NDRSTRUCT): 

1617 structure = ( 

1618 ('sv1544_initconntable', DWORD), 

1619 ) 

1620 

1621class LPSERVER_INFO_1544(NDRPOINTER): 

1622 referent = ( 

1623 ('Data', SERVER_INFO_1544), 

1624 ) 

1625 

1626# 2.2.4.80 SERVER_INFO_1545 

1627class SERVER_INFO_1545(NDRSTRUCT): 

1628 structure = ( 

1629 ('sv1545_initfiletable', DWORD), 

1630 ) 

1631 

1632class LPSERVER_INFO_1545(NDRPOINTER): 

1633 referent = ( 

1634 ('Data', SERVER_INFO_1545), 

1635 ) 

1636 

1637# 2.2.4.81 SERVER_INFO_1546 

1638class SERVER_INFO_1546(NDRSTRUCT): 

1639 structure = ( 

1640 ('sv1546_initsearchtable', DWORD), 

1641 ) 

1642 

1643class LPSERVER_INFO_1546(NDRPOINTER): 

1644 referent = ( 

1645 ('Data', SERVER_INFO_1546), 

1646 ) 

1647 

1648# 2.2.4.82 SERVER_INFO_1547 

1649class SERVER_INFO_1547(NDRSTRUCT): 

1650 structure = ( 

1651 ('sv1547_alertschedule', DWORD), 

1652 ) 

1653 

1654class LPSERVER_INFO_1547(NDRPOINTER): 

1655 referent = ( 

1656 ('Data', SERVER_INFO_1547), 

1657 ) 

1658 

1659# 2.2.4.83 SERVER_INFO_1548 

1660class SERVER_INFO_1548(NDRSTRUCT): 

1661 structure = ( 

1662 ('sv1548_errorthreshold', DWORD), 

1663 ) 

1664 

1665class LPSERVER_INFO_1548(NDRPOINTER): 

1666 referent = ( 

1667 ('Data', SERVER_INFO_1548), 

1668 ) 

1669 

1670# 2.2.4.84 SERVER_INFO_1549 

1671class SERVER_INFO_1549(NDRSTRUCT): 

1672 structure = ( 

1673 ('sv1549_networkerrorthreshold', DWORD), 

1674 ) 

1675 

1676class LPSERVER_INFO_1549(NDRPOINTER): 

1677 referent = ( 

1678 ('Data', SERVER_INFO_1549), 

1679 ) 

1680 

1681# 2.2.4.85 SERVER_INFO_1550 

1682class SERVER_INFO_1550(NDRSTRUCT): 

1683 structure = ( 

1684 ('sv1550_diskspacethreshold', DWORD), 

1685 ) 

1686 

1687class LPSERVER_INFO_1550(NDRPOINTER): 

1688 referent = ( 

1689 ('Data', SERVER_INFO_1550), 

1690 ) 

1691 

1692# 2.2.4.86 SERVER_INFO_1552 

1693class SERVER_INFO_1552(NDRSTRUCT): 

1694 structure = ( 

1695 ('sv1552_maxlinkdelay', DWORD), 

1696 ) 

1697 

1698class LPSERVER_INFO_1552(NDRPOINTER): 

1699 referent = ( 

1700 ('Data', SERVER_INFO_1552), 

1701 ) 

1702 

1703# 2.2.4.87 SERVER_INFO_1553 

1704class SERVER_INFO_1553(NDRSTRUCT): 

1705 structure = ( 

1706 ('sv1553_minlinkthroughput', DWORD), 

1707 ) 

1708 

1709class LPSERVER_INFO_1553(NDRPOINTER): 

1710 referent = ( 

1711 ('Data', SERVER_INFO_1553), 

1712 ) 

1713 

1714# 2.2.4.88 SERVER_INFO_1554 

1715class SERVER_INFO_1554(NDRSTRUCT): 

1716 structure = ( 

1717 ('sv1554_linkinfovalidtime', DWORD), 

1718 ) 

1719 

1720class LPSERVER_INFO_1554(NDRPOINTER): 

1721 referent = ( 

1722 ('Data', SERVER_INFO_1554), 

1723 ) 

1724 

1725# 2.2.4.89 SERVER_INFO_1555 

1726class SERVER_INFO_1555(NDRSTRUCT): 

1727 structure = ( 

1728 ('sv1555_scavqosinfoupdatetime', DWORD), 

1729 ) 

1730 

1731class LPSERVER_INFO_1555(NDRPOINTER): 

1732 referent = ( 

1733 ('Data', SERVER_INFO_1555), 

1734 ) 

1735 

1736# 2.2.4.90 SERVER_INFO_1556 

1737class SERVER_INFO_1556(NDRSTRUCT): 

1738 structure = ( 

1739 ('sv1556_maxworkitemidletime', DWORD), 

1740 ) 

1741 

1742class LPSERVER_INFO_1556(NDRPOINTER): 

1743 referent = ( 

1744 ('Data', SERVER_INFO_1556), 

1745 ) 

1746 

1747# 2.2.4.91 DISK_INFO 

1748class WCHAR_ARRAY(NDRSTRUCT): 

1749 commonHdr = ( 

1750 ('Offset','<L=0'), 

1751 ('ActualCount','<L=len(Data)//2'), 

1752 ) 

1753 commonHdr64 = ( 

1754 ('Offset','<Q=0'), 

1755 ('ActualCount','<Q=len(Data)//2'), 

1756 ) 

1757 structure = ( 

1758 ('Data',':'), 

1759 ) 

1760 

1761 def dump(self, msg = None, indent = 0): 

1762 if msg is None: 1762 ↛ 1763line 1762 didn't jump to line 1763, because the condition on line 1762 was never true

1763 msg = self.__class__.__name__ 

1764 if msg != '': 1764 ↛ 1767line 1764 didn't jump to line 1767, because the condition on line 1764 was never false

1765 print("%s" % msg, end=' ') 

1766 # Here just print the data 

1767 print(" %r" % (self['Data']), end=' ') 

1768 

1769 def __setitem__(self, key, value): 

1770 if key == 'Data': 

1771 try: 

1772 self.fields[key] = value.encode('utf-16le') 

1773 except UnicodeDecodeError: 

1774 import sys 

1775 self.fields[key] = value.decode(sys.getfilesystemencoding()).encode('utf-16le') 

1776 self.fields['ActualCount'] = None 

1777 self.data = None # force recompute 

1778 else: 

1779 return NDR.__setitem__(self, key, value) 

1780 

1781 def __getitem__(self, key): 

1782 if key == 'Data': 

1783 return self.fields[key].decode('utf-16le') 

1784 else: 

1785 return NDR.__getitem__(self,key) 

1786 

1787 def getDataLen(self, data, offset=0): 

1788 return self["ActualCount"]*2 

1789 

1790 

1791class DISK_INFO(NDRSTRUCT): 

1792 structure = ( 

1793 ('Disk', WCHAR_ARRAY), 

1794 ) 

1795 

1796class LPDISK_INFO(NDRPOINTER): 

1797 referent = ( 

1798 ('Data', DISK_INFO), 

1799 ) 

1800 

1801class DISK_INFO_ARRAY(NDRUniConformantVaryingArray): 

1802 item = DISK_INFO 

1803 

1804class LPDISK_INFO_ARRAY(NDRPOINTER): 

1805 referent = ( 

1806 ('Data', DISK_INFO_ARRAY), 

1807 ) 

1808 

1809# 2.2.4.92 DISK_ENUM_CONTAINER 

1810class DISK_ENUM_CONTAINER(NDRSTRUCT): 

1811 structure = ( 

1812 ('EntriesRead', DWORD), 

1813 ('Buffer', LPDISK_INFO_ARRAY), 

1814 ) 

1815 

1816class LPDISK_ENUM_CONTAINER(NDRPOINTER): 

1817 referent = ( 

1818 ('Data', DISK_ENUM_CONTAINER), 

1819 ) 

1820 

1821# 2.2.4.93 SERVER_TRANSPORT_INFO_0 

1822class SERVER_TRANSPORT_INFO_0(NDRSTRUCT): 

1823 structure = ( 

1824 ('svti0_numberofvcs', DWORD), 

1825 ('svti0_transportname', LPWSTR), 

1826 ('svti0_transportaddress', PNDRUniConformantArray), 

1827 ('svti0_transportaddresslength', DWORD), 

1828 ('svti0_networkaddress', LPWSTR), 

1829 ) 

1830 

1831class LPSERVER_TRANSPORT_INFO_0(NDRPOINTER): 

1832 referent = ( 

1833 ('Data', SERVER_TRANSPORT_INFO_0), 

1834 ) 

1835 

1836class SERVER_TRANSPORT_INFO_0_ARRAY(NDRUniConformantArray): 

1837 item = SERVER_TRANSPORT_INFO_0 

1838 

1839class LPSERVER_TRANSPORT_INFO_0_ARRAY(NDRPOINTER): 

1840 referent = ( 

1841 ('Data', SERVER_TRANSPORT_INFO_0_ARRAY), 

1842 ) 

1843 

1844# 2.2.4.94 SERVER_TRANSPORT_INFO_1 

1845class SERVER_TRANSPORT_INFO_1(NDRSTRUCT): 

1846 structure = ( 

1847 ('svti1_numberofvcs', DWORD), 

1848 ('svti1_transportname', LPWSTR), 

1849 ('svti1_transportaddress', PNDRUniConformantArray), 

1850 ('svti1_transportaddresslength', DWORD), 

1851 ('svti1_networkaddress', LPWSTR), 

1852 ('svti1_domain', LPWSTR), 

1853 ) 

1854 

1855class LPSERVER_TRANSPORT_INFO_1(NDRPOINTER): 

1856 referent = ( 

1857 ('Data', SERVER_TRANSPORT_INFO_1), 

1858 ) 

1859 

1860class SERVER_TRANSPORT_INFO_1_ARRAY(NDRUniConformantArray): 

1861 item = SERVER_TRANSPORT_INFO_1 

1862 

1863class LPSERVER_TRANSPORT_INFO_1_ARRAY(NDRPOINTER): 

1864 referent = ( 

1865 ('Data', SERVER_TRANSPORT_INFO_1_ARRAY), 

1866 ) 

1867 

1868# 2.2.4.95 SERVER_TRANSPORT_INFO_2 

1869class SERVER_TRANSPORT_INFO_2(NDRSTRUCT): 

1870 structure = ( 

1871 ('svti2_numberofvcs', DWORD), 

1872 ('svti2_transportname', LPWSTR), 

1873 ('svti2_transportaddress', PNDRUniConformantArray), 

1874 ('svti2_transportaddresslength', DWORD), 

1875 ('svti2_networkaddress', LPWSTR), 

1876 ('svti2_domain', LPWSTR), 

1877 ('svti2_flags', DWORD), 

1878 ) 

1879 

1880class LPSERVER_TRANSPORT_INFO_2(NDRPOINTER): 

1881 referent = ( 

1882 ('Data', SERVER_TRANSPORT_INFO_2), 

1883 ) 

1884 

1885class SERVER_TRANSPORT_INFO_2_ARRAY(NDRUniConformantArray): 

1886 item = SERVER_TRANSPORT_INFO_2 

1887 

1888class LPSERVER_TRANSPORT_INFO_2_ARRAY(NDRPOINTER): 

1889 referent = ( 

1890 ('Data', SERVER_TRANSPORT_INFO_2_ARRAY), 

1891 ) 

1892 

1893# 2.2.4.96 SERVER_TRANSPORT_INFO_3 

1894class PASSWORD_ARRAY(NDRUniFixedArray): 

1895 def getDataLen(self, data, offset=0): 

1896 return 256 

1897 

1898class SERVER_TRANSPORT_INFO_3(NDRSTRUCT): 

1899 structure = ( 

1900 ('svti3_numberofvcs', DWORD), 

1901 ('svti3_transportname', LPWSTR), 

1902 ('svti3_transportaddress', PNDRUniConformantArray), 

1903 ('svti3_transportaddresslength', DWORD), 

1904 ('svti3_networkaddress', LPWSTR), 

1905 ('svti3_domain', LPWSTR), 

1906 ('svti3_flags', DWORD), 

1907 ('svti3_passwordlength', DWORD), 

1908 ('svti3_password', PASSWORD_ARRAY), 

1909 ) 

1910 

1911class LPSERVER_TRANSPORT_INFO_3(NDRPOINTER): 

1912 referent = ( 

1913 ('Data', SERVER_TRANSPORT_INFO_3), 

1914 ) 

1915 

1916class SERVER_TRANSPORT_INFO_3_ARRAY(NDRUniConformantArray): 

1917 item = SERVER_TRANSPORT_INFO_3 

1918 

1919class LPSERVER_TRANSPORT_INFO_3_ARRAY(NDRPOINTER): 

1920 referent = ( 

1921 ('Data', SERVER_TRANSPORT_INFO_3_ARRAY), 

1922 ) 

1923 

1924# 2.2.4.97 SERVER_XPORT_INFO_0_CONTAINER 

1925class SERVER_XPORT_INFO_0_CONTAINER(NDRSTRUCT): 

1926 structure = ( 

1927 ('EntriesRead', DWORD), 

1928 ('Buffer', LPSERVER_TRANSPORT_INFO_0_ARRAY), 

1929 ) 

1930 

1931class LPSERVER_XPORT_INFO_0_CONTAINER(NDRPOINTER): 

1932 referent = ( 

1933 ('Data', SERVER_XPORT_INFO_0_CONTAINER), 

1934 ) 

1935 

1936# 2.2.4.98 SERVER_XPORT_INFO_1_CONTAINER 

1937class SERVER_XPORT_INFO_1_CONTAINER(NDRSTRUCT): 

1938 structure = ( 

1939 ('EntriesRead', DWORD), 

1940 ('Buffer', LPSERVER_TRANSPORT_INFO_1_ARRAY), 

1941 ) 

1942 

1943class LPSERVER_XPORT_INFO_1_CONTAINER(NDRPOINTER): 

1944 referent = ( 

1945 ('Data', SERVER_XPORT_INFO_1_CONTAINER), 

1946 ) 

1947 

1948# 2.2.4.99 SERVER_XPORT_INFO_2_CONTAINER 

1949class SERVER_XPORT_INFO_2_CONTAINER(NDRSTRUCT): 

1950 structure = ( 

1951 ('EntriesRead', DWORD), 

1952 ('Buffer', LPSERVER_TRANSPORT_INFO_2_ARRAY), 

1953 ) 

1954 

1955class LPSERVER_XPORT_INFO_2_CONTAINER(NDRPOINTER): 

1956 referent = ( 

1957 ('Data', SERVER_XPORT_INFO_2_CONTAINER), 

1958 ) 

1959 

1960# 2.2.4.100 SERVER_XPORT_INFO_3_CONTAINER 

1961class SERVER_XPORT_INFO_3_CONTAINER(NDRSTRUCT): 

1962 structure = ( 

1963 ('EntriesRead', DWORD), 

1964 ('Buffer', LPSERVER_TRANSPORT_INFO_3_ARRAY), 

1965 ) 

1966 

1967class LPSERVER_XPORT_INFO_3_CONTAINER(NDRPOINTER): 

1968 referent = ( 

1969 ('Data', SERVER_XPORT_INFO_3_CONTAINER), 

1970 ) 

1971 

1972# 2.2.3.8 SERVER_XPORT_ENUM_UNION 

1973class SERVER_XPORT_ENUM_UNION(NDRUNION): 

1974 commonHdr = ( 

1975 ('tag', DWORD), 

1976 ) 

1977 

1978 union = { 

1979 0: ('Level0', LPSERVER_XPORT_INFO_0_CONTAINER), 

1980 1: ('Level1', LPSERVER_XPORT_INFO_1_CONTAINER), 

1981 2: ('Level2', LPSERVER_XPORT_INFO_2_CONTAINER), 

1982 3: ('Level3', LPSERVER_XPORT_INFO_3_CONTAINER), 

1983 } 

1984 

1985# 2.2.4.101 SERVER_XPORT_ENUM_STRUCT 

1986class SERVER_XPORT_ENUM_STRUCT(NDRSTRUCT): 

1987 structure = ( 

1988 ('Level', DWORD), 

1989 ('XportInfo', SERVER_XPORT_ENUM_UNION), 

1990 ) 

1991 

1992# 2.2.4.102 SERVER_ALIAS_INFO_0 

1993class SERVER_ALIAS_INFO_0(NDRSTRUCT): 

1994 structure = ( 

1995 ('srvai0_alias', LMSTR), 

1996 ('srvai0_target', LMSTR), 

1997 ('srvai0_default', NDRBOOLEAN), 

1998 ('srvai0_reserved', ULONG), 

1999 ) 

2000 

2001class LPSERVER_ALIAS_INFO_0(NDRPOINTER): 

2002 referent = ( 

2003 ('Data', SERVER_ALIAS_INFO_0), 

2004 ) 

2005 

2006class SERVER_ALIAS_INFO_0_ARRAY(NDRUniConformantArray): 

2007 item = SERVER_ALIAS_INFO_0 

2008 

2009class LPSERVER_ALIAS_INFO_0_ARRAY(NDRPOINTER): 

2010 referent = ( 

2011 ('Data', SERVER_ALIAS_INFO_0_ARRAY), 

2012 ) 

2013 

2014# 2.2.4.103 SERVER_ALIAS_INFO_0_CONTAINER 

2015class SERVER_ALIAS_INFO_0_CONTAINER(NDRSTRUCT): 

2016 structure = ( 

2017 ('EntriesRead', DWORD), 

2018 ('Buffer', LPSERVER_ALIAS_INFO_0_ARRAY), 

2019 ) 

2020 

2021class LPSERVER_ALIAS_INFO_0_CONTAINER(NDRPOINTER): 

2022 referent = ( 

2023 ('Data', SERVER_ALIAS_INFO_0_CONTAINER), 

2024 ) 

2025 

2026# 2.2.4.104 SERVER_ALIAS_ENUM_STRUCT 

2027class SERVER_ALIAS_ENUM_UNION(NDRUNION): 

2028 commonHdr = ( 

2029 ('tag', DWORD), 

2030 ) 

2031 

2032 union = { 

2033 0: ('Level0', LPSERVER_ALIAS_INFO_0_CONTAINER), 

2034 } 

2035 

2036class SERVER_ALIAS_ENUM_STRUCT(NDRSTRUCT): 

2037 structure = ( 

2038 ('Level', DWORD), 

2039 ('ServerAliasInfo', SERVER_ALIAS_ENUM_UNION), 

2040 ) 

2041 

2042# 2.2.4.105 TIME_OF_DAY_INFO 

2043class TIME_OF_DAY_INFO(NDRSTRUCT): 

2044 structure = ( 

2045 ('tod_elapsedt', DWORD), 

2046 ('tod_msecs', DWORD), 

2047 ('tod_hours', DWORD), 

2048 ('tod_mins', DWORD), 

2049 ('tod_secs', DWORD), 

2050 ('tod_hunds', DWORD), 

2051 ('tod_timezone', DWORD), 

2052 ('tod_tinterval', DWORD), 

2053 ('tod_day', DWORD), 

2054 ('tod_month', DWORD), 

2055 ('tod_year', DWORD), 

2056 ('tod_weekday', DWORD), 

2057 ) 

2058 

2059class LPTIME_OF_DAY_INFO(NDRPOINTER): 

2060 referent = ( 

2061 ('Data', TIME_OF_DAY_INFO), 

2062 ) 

2063 

2064# 2.2.4.106 ADT_SECURITY_DESCRIPTOR 

2065class ADT_SECURITY_DESCRIPTOR(NDRSTRUCT): 

2066 structure = ( 

2067 ('Length', DWORD), 

2068 ('Buffer', PNDRUniConformantArray), 

2069 ) 

2070 

2071class PADT_SECURITY_DESCRIPTOR(NDRPOINTER): 

2072 referent = ( 

2073 ('Data', ADT_SECURITY_DESCRIPTOR), 

2074 ) 

2075 

2076# 2.2.4.107 NET_DFS_ENTRY_ID 

2077class NET_DFS_ENTRY_ID(NDRSTRUCT): 

2078 structure = ( 

2079 ('Uid', GUID), 

2080 ('Prefix', LPWSTR), 

2081 ) 

2082 

2083class NET_DFS_ENTRY_ID_ARRAY(NDRUniConformantArray): 

2084 item = NET_DFS_ENTRY_ID 

2085 

2086class LPNET_DFS_ENTRY_ID_ARRAY(NDRPOINTER): 

2087 referent = ( 

2088 ('Data', NET_DFS_ENTRY_ID_ARRAY), 

2089 ) 

2090 

2091# 2.2.4.108 NET_DFS_ENTRY_ID_CONTAINER 

2092class NET_DFS_ENTRY_ID_CONTAINER(NDRSTRUCT): 

2093 structure = ( 

2094 ('Count', DWORD), 

2095 ('Buffer', LPNET_DFS_ENTRY_ID_ARRAY), 

2096 ) 

2097 

2098# 2.2.4.109 DFS_SITENAME_INFO 

2099class DFS_SITENAME_INFO(NDRSTRUCT): 

2100 structure = ( 

2101 ('SiteFlags', DWORD), 

2102 ('SiteName', LPWSTR), 

2103 ) 

2104 

2105# 2.2.4.110 DFS_SITELIST_INFO 

2106class DFS_SITENAME_INFO_ARRAY(NDRUniConformantArray): 

2107 item = DFS_SITENAME_INFO 

2108 

2109class DFS_SITELIST_INFO(NDRSTRUCT): 

2110 structure = ( 

2111 ('cSites', DWORD), 

2112 ('Site', DFS_SITENAME_INFO_ARRAY), 

2113 ) 

2114 

2115class LPDFS_SITELIST_INFO(NDRPOINTER): 

2116 referent = ( 

2117 ('Data', DFS_SITELIST_INFO), 

2118 ) 

2119 

2120# 2.2.3 Unions 

2121# 2.2.3.3 FILE_INFO 

2122class FILE_INFO(NDRUNION): 

2123 commonHdr = ( 

2124 ('tag', DWORD), 

2125 ) 

2126 

2127 union = { 

2128 2: ('FileInfo2', LPFILE_INFO_2), 

2129 3: ('FileInfo3', LPFILE_INFO_3), 

2130 } 

2131 

2132# 2.2.3.6 SHARE_INFO 

2133class SHARE_INFO(NDRUNION): 

2134 commonHdr = ( 

2135 ('tag', DWORD), 

2136 ) 

2137 

2138 union = { 

2139 0: ('ShareInfo0', LPSHARE_INFO_0), 

2140 1: ('ShareInfo1', LPSHARE_INFO_1), 

2141 2: ('ShareInfo2', LPSHARE_INFO_2), 

2142 502: ('ShareInfo502', LPSHARE_INFO_502), 

2143 1004: ('ShareInfo1004', LPSHARE_INFO_1004), 

2144 1006: ('ShareInfo1006', LPSHARE_INFO_1006), 

2145 1501: ('ShareInfo1501', LPSHARE_INFO_1501), 

2146 1005: ('ShareInfo1005', LPSHARE_INFO_1005), 

2147 501: ('ShareInfo501', LPSHARE_INFO_501), 

2148 503: ('ShareInfo503', LPSHARE_INFO_503), 

2149 } 

2150 

2151# 2.2.3.7 SERVER_INFO 

2152class SERVER_INFO(NDRUNION): 

2153 commonHdr = ( 

2154 ('tag', DWORD), 

2155 ) 

2156 

2157 union = { 

2158 100: ('ServerInfo100', LPSERVER_INFO_100), 

2159 101: ('ServerInfo101', LPSERVER_INFO_101), 

2160 102: ('ServerInfo102', LPSERVER_INFO_102), 

2161 103: ('ServerInfo103', LPSERVER_INFO_103), 

2162 502: ('ServerInfo502', LPSERVER_INFO_502), 

2163 503: ('ServerInfo503', LPSERVER_INFO_503), 

2164 599: ('ServerInfo599', LPSERVER_INFO_599), 

2165 1005: ('ServerInfo1005', LPSERVER_INFO_1005), 

2166 1107: ('ServerInfo1107', LPSERVER_INFO_1107), 

2167 1010: ('ServerInfo1010', LPSERVER_INFO_1010), 

2168 1016: ('ServerInfo1016', LPSERVER_INFO_1016), 

2169 1017: ('ServerInfo1017', LPSERVER_INFO_1017), 

2170 1018: ('ServerInfo1018', LPSERVER_INFO_1018), 

2171 1501: ('ServerInfo1501', LPSERVER_INFO_1501), 

2172 1502: ('ServerInfo1502', LPSERVER_INFO_1502), 

2173 1503: ('ServerInfo1503', LPSERVER_INFO_1503), 

2174 1506: ('ServerInfo1506', LPSERVER_INFO_1506), 

2175 1510: ('ServerInfo1510', LPSERVER_INFO_1510), 

2176 1511: ('ServerInfo1511', LPSERVER_INFO_1511), 

2177 1512: ('ServerInfo1512', LPSERVER_INFO_1512), 

2178 1513: ('ServerInfo1513', LPSERVER_INFO_1513), 

2179 1514: ('ServerInfo1514', LPSERVER_INFO_1514), 

2180 1515: ('ServerInfo1515', LPSERVER_INFO_1515), 

2181 1516: ('ServerInfo1516', LPSERVER_INFO_1516), 

2182 1518: ('ServerInfo1518', LPSERVER_INFO_1518), 

2183 1523: ('ServerInfo1523', LPSERVER_INFO_1523), 

2184 1528: ('ServerInfo1528', LPSERVER_INFO_1528), 

2185 1529: ('ServerInfo1529', LPSERVER_INFO_1529), 

2186 1530: ('ServerInfo1530', LPSERVER_INFO_1530), 

2187 1533: ('ServerInfo1533', LPSERVER_INFO_1533), 

2188 1534: ('ServerInfo1534', LPSERVER_INFO_1534), 

2189 1535: ('ServerInfo1535', LPSERVER_INFO_1535), 

2190 1536: ('ServerInfo1536', LPSERVER_INFO_1536), 

2191 1538: ('ServerInfo1538', LPSERVER_INFO_1538), 

2192 1539: ('ServerInfo1539', LPSERVER_INFO_1539), 

2193 1540: ('ServerInfo1540', LPSERVER_INFO_1540), 

2194 1541: ('ServerInfo1541', LPSERVER_INFO_1541), 

2195 1542: ('ServerInfo1542', LPSERVER_INFO_1542), 

2196 1543: ('ServerInfo1543', LPSERVER_INFO_1543), 

2197 1544: ('ServerInfo1544', LPSERVER_INFO_1544), 

2198 1545: ('ServerInfo1545', LPSERVER_INFO_1545), 

2199 1546: ('ServerInfo1546', LPSERVER_INFO_1546), 

2200 1547: ('ServerInfo1547', LPSERVER_INFO_1547), 

2201 1548: ('ServerInfo1548', LPSERVER_INFO_1548), 

2202 1549: ('ServerInfo1549', LPSERVER_INFO_1549), 

2203 1550: ('ServerInfo1550', LPSERVER_INFO_1550), 

2204 1552: ('ServerInfo1552', LPSERVER_INFO_1552), 

2205 1553: ('ServerInfo1553', LPSERVER_INFO_1553), 

2206 1554: ('ServerInfo1554', LPSERVER_INFO_1554), 

2207 1555: ('ServerInfo1555', LPSERVER_INFO_1555), 

2208 1556: ('ServerInfo1556', LPSERVER_INFO_1556), 

2209 } 

2210 

2211# 2.2.3.9 TRANSPORT_INFO 

2212class TRANSPORT_INFO(NDRUNION): 

2213 commonHdr = ( 

2214 ('tag', DWORD), 

2215 ) 

2216 

2217 union = { 

2218 0: ('Transport0', SERVER_TRANSPORT_INFO_0), 

2219 1: ('Transport1', SERVER_TRANSPORT_INFO_1), 

2220 2: ('Transport2', SERVER_TRANSPORT_INFO_2), 

2221 3: ('Transport3', SERVER_TRANSPORT_INFO_3), 

2222 } 

2223 

2224# 2.2.3.10 SERVER_ALIAS_INFO 

2225class SERVER_ALIAS_INFO(NDRUNION): 

2226 commonHdr = ( 

2227 ('tag', DWORD), 

2228 ) 

2229 

2230 union = { 

2231 0: ('ServerAliasInfo0', LPSERVER_ALIAS_INFO_0), 

2232 } 

2233 

2234 

2235################################################################################ 

2236# RPC CALLS 

2237################################################################################ 

2238# 3.1.4.1 NetrConnectionEnum (Opnum 8) 

2239class NetrConnectionEnum(NDRCALL): 

2240 opnum = 8 

2241 structure = ( 

2242 ('ServerName', PSRVSVC_HANDLE), 

2243 ('Qualifier', LPWSTR), 

2244 ('InfoStruct', CONNECT_ENUM_STRUCT), 

2245 ('PreferedMaximumLength', DWORD), 

2246 ('ResumeHandle', LPLONG), 

2247 ) 

2248 

2249class NetrConnectionEnumResponse(NDRCALL): 

2250 structure = ( 

2251 ('InfoStruct',CONNECT_ENUM_STRUCT), 

2252 ('TotalEntries',DWORD), 

2253 ('ResumeHandle',LPLONG), 

2254 ('ErrorCode',ULONG), 

2255 ) 

2256 

2257# 3.1.4.2 NetrFileEnum (Opnum 9) 

2258class NetrFileEnum(NDRCALL): 

2259 opnum = 9 

2260 structure = ( 

2261 ('ServerName', PSRVSVC_HANDLE), 

2262 ('BasePath', LPWSTR), 

2263 ('UserName', LPWSTR), 

2264 ('InfoStruct', FILE_ENUM_STRUCT), 

2265 ('PreferedMaximumLength', DWORD), 

2266 ('ResumeHandle', LPLONG), 

2267 ) 

2268 

2269class NetrFileEnumResponse(NDRCALL): 

2270 structure = ( 

2271 ('InfoStruct',FILE_ENUM_STRUCT), 

2272 ('TotalEntries',DWORD), 

2273 ('ResumeHandle',LPLONG), 

2274 ('ErrorCode',ULONG), 

2275 ) 

2276 

2277# 3.1.4.3 NetrFileGetInfo (Opnum 10) 

2278class NetrFileGetInfo(NDRCALL): 

2279 opnum = 10 

2280 structure = ( 

2281 ('ServerName', PSRVSVC_HANDLE), 

2282 ('FileId', DWORD), 

2283 ('Level', DWORD), 

2284 ) 

2285 

2286class NetrFileGetInfoResponse(NDRCALL): 

2287 structure = ( 

2288 ('InfoStruct',FILE_INFO), 

2289 ('ErrorCode',ULONG), 

2290 ) 

2291 

2292# 3.1.4.4 NetrFileClose (Opnum 11) 

2293class NetrFileClose(NDRCALL): 

2294 opnum = 11 

2295 structure = ( 

2296 ('ServerName', PSRVSVC_HANDLE), 

2297 ('FileId', DWORD), 

2298 ) 

2299 

2300class NetrFileCloseResponse(NDRCALL): 

2301 structure = ( 

2302 ('ErrorCode',ULONG), 

2303 ) 

2304 

2305# 3.1.4.5 NetrSessionEnum (Opnum 12) 

2306class NetrSessionEnum(NDRCALL): 

2307 opnum = 12 

2308 structure = ( 

2309 ('ServerName', PSRVSVC_HANDLE), 

2310 ('ClientName', LPWSTR), 

2311 ('UserName', LPWSTR), 

2312 ('InfoStruct', SESSION_ENUM_STRUCT), 

2313 ('PreferedMaximumLength', DWORD), 

2314 ('ResumeHandle', LPLONG), 

2315 ) 

2316 

2317class NetrSessionEnumResponse(NDRCALL): 

2318 structure = ( 

2319 ('InfoStruct',SESSION_ENUM_STRUCT), 

2320 ('TotalEntries',DWORD), 

2321 ('ResumeHandle',LPLONG), 

2322 ('ErrorCode',ULONG), 

2323 ) 

2324 

2325# 3.1.4.6 NetrSessionDel (Opnum 13) 

2326class NetrSessionDel(NDRCALL): 

2327 opnum = 13 

2328 structure = ( 

2329 ('ServerName', PSRVSVC_HANDLE), 

2330 ('ClientName', LPWSTR), 

2331 ('UserName', LPWSTR), 

2332 ) 

2333 

2334class NetrSessionDelResponse(NDRCALL): 

2335 structure = ( 

2336 ('ErrorCode',ULONG), 

2337 ) 

2338 

2339# 3.1.4.7 NetrShareAdd (Opnum 14) 

2340class NetrShareAdd(NDRCALL): 

2341 opnum = 14 

2342 structure = ( 

2343 ('ServerName', PSRVSVC_HANDLE), 

2344 ('Level', DWORD), 

2345 ('InfoStruct', SHARE_INFO), 

2346 ('ParmErr', LPLONG), 

2347 ) 

2348 

2349class NetrShareAddResponse(NDRCALL): 

2350 structure = ( 

2351 ('ParmErr', LPLONG), 

2352 ('ErrorCode',ULONG), 

2353 ) 

2354 

2355# 3.1.4.8 NetrShareEnum (Opnum 15) 

2356class NetrShareEnum(NDRCALL): 

2357 opnum = 15 

2358 structure = ( 

2359 ('ServerName', PSRVSVC_HANDLE), 

2360 ('InfoStruct', SHARE_ENUM_STRUCT), 

2361 ('PreferedMaximumLength', DWORD), 

2362 ('ResumeHandle', LPLONG), 

2363 ) 

2364 

2365class NetrShareEnumResponse(NDRCALL): 

2366 structure = ( 

2367 ('InfoStruct', SHARE_ENUM_STRUCT), 

2368 ('TotalEntries',DWORD), 

2369 ('ResumeHandle',LPLONG), 

2370 ('ErrorCode',ULONG), 

2371 ) 

2372 

2373# 3.1.4.9 NetrShareEnumSticky (Opnum 36) 

2374class NetrShareEnumSticky(NDRCALL): 

2375 opnum = 36 

2376 structure = ( 

2377 ('ServerName', PSRVSVC_HANDLE), 

2378 ('InfoStruct', SHARE_ENUM_STRUCT), 

2379 ('PreferedMaximumLength', DWORD), 

2380 ('ResumeHandle', LPLONG), 

2381 ) 

2382 

2383class NetrShareEnumStickyResponse(NDRCALL): 

2384 structure = ( 

2385 ('InfoStruct', SHARE_ENUM_STRUCT), 

2386 ('TotalEntries',DWORD), 

2387 ('ResumeHandle',LPLONG), 

2388 ('ErrorCode',ULONG), 

2389 ) 

2390 

2391# 3.1.4.10 NetrShareGetInfo (Opnum 16) 

2392class NetrShareGetInfo(NDRCALL): 

2393 opnum = 16 

2394 structure = ( 

2395 ('ServerName', PSRVSVC_HANDLE), 

2396 ('NetName', WSTR), 

2397 ('Level', DWORD), 

2398 ) 

2399 

2400class NetrShareGetInfoResponse(NDRCALL): 

2401 structure = ( 

2402 ('InfoStruct', SHARE_INFO), 

2403 ('ErrorCode',ULONG), 

2404 ) 

2405 

2406# 3.1.4.11 NetrShareSetInfo (Opnum 17) 

2407class NetrShareSetInfo(NDRCALL): 

2408 opnum = 17 

2409 structure = ( 

2410 ('ServerName', PSRVSVC_HANDLE), 

2411 ('NetName', WSTR), 

2412 ('Level', DWORD), 

2413 ('ShareInfo', SHARE_INFO), 

2414 ('ParmErr', LPLONG), 

2415 ) 

2416 

2417class NetrShareSetInfoResponse(NDRCALL): 

2418 structure = ( 

2419 ('ParmErr', LPLONG), 

2420 ('ErrorCode',ULONG), 

2421 ) 

2422 

2423# 3.1.4.12 NetrShareDel (Opnum 18) 

2424class NetrShareDel(NDRCALL): 

2425 opnum = 18 

2426 structure = ( 

2427 ('ServerName', PSRVSVC_HANDLE), 

2428 ('NetName', WSTR), 

2429 ('Reserved', DWORD), 

2430 ) 

2431 

2432class NetrShareDelResponse(NDRCALL): 

2433 structure = ( 

2434 ('ErrorCode',ULONG), 

2435 ) 

2436 

2437# 3.1.4.13 NetrShareDelSticky (Opnum 19) 

2438class NetrShareDelSticky(NDRCALL): 

2439 opnum = 19 

2440 structure = ( 

2441 ('ServerName', PSRVSVC_HANDLE), 

2442 ('NetName', WSTR), 

2443 ('Reserved', DWORD), 

2444 ) 

2445 

2446class NetrShareDelStickyResponse(NDRCALL): 

2447 structure = ( 

2448 ('ErrorCode',ULONG), 

2449 ) 

2450 

2451# 3.1.4.14 NetrShareDelStart (Opnum 37) 

2452class NetrShareDelStart(NDRCALL): 

2453 opnum = 37 

2454 structure = ( 

2455 ('ServerName', PSRVSVC_HANDLE), 

2456 ('NetName', WSTR), 

2457 ('Reserved', DWORD), 

2458 ) 

2459 

2460class NetrShareDelStartResponse(NDRCALL): 

2461 structure = ( 

2462 ('ContextHandle',SHARE_DEL_HANDLE), 

2463 ('ErrorCode',ULONG), 

2464 ) 

2465 

2466# 3.1.4.15 NetrShareDelCommit (Opnum 38) 

2467class NetrShareDelCommit(NDRCALL): 

2468 opnum = 38 

2469 structure = ( 

2470 ('ContextHandle',SHARE_DEL_HANDLE), 

2471 ) 

2472 

2473class NetrShareDelCommitResponse(NDRCALL): 

2474 structure = ( 

2475 ('ErrorCode',ULONG), 

2476 ) 

2477 

2478# 3.1.4.16 NetrShareCheck (Opnum 20) 

2479class NetrShareCheck(NDRCALL): 

2480 opnum = 20 

2481 structure = ( 

2482 ('ServerName', PSRVSVC_HANDLE), 

2483 ('Device', WSTR), 

2484 ) 

2485 

2486class NetrShareCheckResponse(NDRCALL): 

2487 structure = ( 

2488 ('Type',DWORD), 

2489 ('ErrorCode',ULONG), 

2490 ) 

2491 

2492# 3.1.4.17 NetrServerGetInfo (Opnum 21) 

2493class NetrServerGetInfo(NDRCALL): 

2494 opnum = 21 

2495 structure = ( 

2496 ('ServerName', PSRVSVC_HANDLE), 

2497 ('Level', DWORD), 

2498 ) 

2499 

2500class NetrServerGetInfoResponse(NDRCALL): 

2501 structure = ( 

2502 ('InfoStruct', SERVER_INFO), 

2503 ('ErrorCode',ULONG), 

2504 ) 

2505 

2506# 3.1.4.18 NetrServerSetInfo (Opnum 22) 

2507class NetrServerSetInfo(NDRCALL): 

2508 opnum = 22 

2509 structure = ( 

2510 ('ServerName', PSRVSVC_HANDLE), 

2511 ('Level', DWORD), 

2512 ('InfoStruct', SERVER_INFO), 

2513 ) 

2514 

2515class NetrServerSetInfoResponse(NDRCALL): 

2516 structure = ( 

2517 ('ParmErr', LPLONG), 

2518 ('ErrorCode',ULONG), 

2519 ) 

2520 

2521# 3.1.4.19 NetrServerDiskEnum (Opnum 23) 

2522class NetrServerDiskEnum(NDRCALL): 

2523 opnum = 23 

2524 structure = ( 

2525 ('ServerName', PSRVSVC_HANDLE), 

2526 ('Level', DWORD), 

2527 ('DiskInfoStruct', DISK_ENUM_CONTAINER), 

2528 ('PreferedMaximumLength', DWORD), 

2529 ('ResumeHandle', LPLONG), 

2530 ) 

2531 

2532class NetrServerDiskEnumResponse(NDRCALL): 

2533 structure = ( 

2534 ('DiskInfoStruct', DISK_ENUM_CONTAINER), 

2535 ('TotalEntries', DWORD), 

2536 ('ResumeHandle', LPLONG), 

2537 ('ErrorCode',ULONG), 

2538 ) 

2539 

2540# 3.1.4.20 NetrServerStatisticsGet (Opnum 24) 

2541class NetrServerStatisticsGet(NDRCALL): 

2542 opnum = 24 

2543 structure = ( 

2544 ('ServerName', PSRVSVC_HANDLE), 

2545 ('Service', LPWSTR), 

2546 ('Level', DWORD), 

2547 ('Options', DWORD), 

2548 ) 

2549 

2550class NetrServerStatisticsGetResponse(NDRCALL): 

2551 structure = ( 

2552 ('InfoStruct', LPSTAT_SERVER_0), 

2553 ('ErrorCode',ULONG), 

2554 ) 

2555 

2556# 3.1.4.21 NetrRemoteTOD (Opnum 28) 

2557class NetrRemoteTOD(NDRCALL): 

2558 opnum = 28 

2559 structure = ( 

2560 ('ServerName', PSRVSVC_HANDLE), 

2561 ) 

2562 

2563class NetrRemoteTODResponse(NDRCALL): 

2564 structure = ( 

2565 ('BufferPtr', LPTIME_OF_DAY_INFO), 

2566 ('ErrorCode',ULONG), 

2567 ) 

2568 

2569# 3.1.4.22 NetrServerTransportAdd (Opnum 25) 

2570class NetrServerTransportAdd(NDRCALL): 

2571 opnum = 25 

2572 structure = ( 

2573 ('ServerName', PSRVSVC_HANDLE), 

2574 ('Level', DWORD), 

2575 ('Buffer', SERVER_TRANSPORT_INFO_0), 

2576 ) 

2577 

2578class NetrServerTransportAddResponse(NDRCALL): 

2579 structure = ( 

2580 ('ErrorCode',ULONG), 

2581 ) 

2582 

2583# 3.1.4.23 NetrServerTransportAddEx (Opnum 41) 

2584class NetrServerTransportAddEx(NDRCALL): 

2585 opnum = 41 

2586 structure = ( 

2587 ('ServerName', PSRVSVC_HANDLE), 

2588 ('Level', DWORD), 

2589 ('Buffer', TRANSPORT_INFO), 

2590 ) 

2591 

2592class NetrServerTransportAddExResponse(NDRCALL): 

2593 structure = ( 

2594 ('ErrorCode',ULONG), 

2595 ) 

2596 

2597# 3.1.4.24 NetrServerTransportEnum (Opnum 26) 

2598class NetrServerTransportEnum(NDRCALL): 

2599 opnum = 26 

2600 structure = ( 

2601 ('ServerName', PSRVSVC_HANDLE), 

2602 ('InfoStruct', SERVER_XPORT_ENUM_STRUCT), 

2603 ('PreferedMaximumLength', DWORD), 

2604 ('ResumeHandle', LPLONG), 

2605 ) 

2606 

2607class NetrServerTransportEnumResponse(NDRCALL): 

2608 structure = ( 

2609 ('InfoStruct', SERVER_XPORT_ENUM_STRUCT), 

2610 ('TotalEntries', DWORD), 

2611 ('ResumeHandle', LPLONG), 

2612 ('ErrorCode',ULONG), 

2613 ) 

2614 

2615# 3.1.4.25 NetrServerTransportDel (Opnum 27) 

2616class NetrServerTransportDel(NDRCALL): 

2617 opnum = 27 

2618 structure = ( 

2619 ('ServerName', PSRVSVC_HANDLE), 

2620 ('Level', DWORD), 

2621 ('Buffer', SERVER_TRANSPORT_INFO_0), 

2622 ) 

2623 

2624class NetrServerTransportDelResponse(NDRCALL): 

2625 structure = ( 

2626 ('ErrorCode',ULONG), 

2627 ) 

2628 

2629# 3.1.4.26 NetrServerTransportDelEx (Opnum 53) 

2630class NetrServerTransportDelEx(NDRCALL): 

2631 opnum = 53 

2632 structure = ( 

2633 ('ServerName', PSRVSVC_HANDLE), 

2634 ('Level', DWORD), 

2635 ('Buffer', TRANSPORT_INFO), 

2636 ) 

2637 

2638class NetrServerTransportDelExResponse(NDRCALL): 

2639 structure = ( 

2640 ('ErrorCode',ULONG), 

2641 ) 

2642 

2643# 3.1.4.27 NetrpGetFileSecurity (Opnum 39) 

2644class NetrpGetFileSecurity(NDRCALL): 

2645 opnum = 39 

2646 structure = ( 

2647 ('ServerName', PSRVSVC_HANDLE), 

2648 ('ShareName', LPWSTR), 

2649 ('lpFileName', WSTR), 

2650 ('RequestedInformation', SECURITY_INFORMATION), 

2651 ) 

2652 

2653class NetrpGetFileSecurityResponse(NDRCALL): 

2654 structure = ( 

2655 ('SecurityDescriptor', PADT_SECURITY_DESCRIPTOR), 

2656 ('ErrorCode',ULONG), 

2657 ) 

2658 

2659# 3.1.4.28 NetrpSetFileSecurity (Opnum 40) 

2660class NetrpSetFileSecurity(NDRCALL): 

2661 opnum = 40 

2662 structure = ( 

2663 ('ServerName', PSRVSVC_HANDLE), 

2664 ('ShareName', LPWSTR), 

2665 ('lpFileName', WSTR), 

2666 ('SecurityInformation', SECURITY_INFORMATION), 

2667 ('SecurityDescriptor', ADT_SECURITY_DESCRIPTOR), 

2668 ) 

2669 

2670class NetrpSetFileSecurityResponse(NDRCALL): 

2671 structure = ( 

2672 ('ErrorCode',ULONG), 

2673 ) 

2674 

2675# 3.1.4.29 NetprPathType (Opnum 30) 

2676class NetprPathType(NDRCALL): 

2677 opnum = 30 

2678 structure = ( 

2679 ('ServerName', PSRVSVC_HANDLE), 

2680 ('PathName', WSTR), 

2681 ('Flags', DWORD), 

2682 ) 

2683 

2684class NetprPathTypeResponse(NDRCALL): 

2685 structure = ( 

2686 ('PathType', DWORD), 

2687 ('ErrorCode',ULONG), 

2688 ) 

2689 

2690# 3.1.4.30 NetprPathCanonicalize (Opnum 31) 

2691class NetprPathCanonicalize(NDRCALL): 

2692 opnum = 31 

2693 structure = ( 

2694 ('ServerName', PSRVSVC_HANDLE), 

2695 ('PathName', WSTR), 

2696 ('OutbufLen', DWORD), 

2697 ('Prefix', WSTR), 

2698 ('PathType', DWORD), 

2699 ('Flags', DWORD), 

2700 ) 

2701 

2702class NetprPathCanonicalizeResponse(NDRCALL): 

2703 structure = ( 

2704 ('Outbuf', NDRUniConformantArray), 

2705 ('PathType', DWORD), 

2706 ('ErrorCode',ULONG), 

2707 ) 

2708 

2709# 3.1.4.31 NetprPathCompare (Opnum 32) 

2710class NetprPathCompare(NDRCALL): 

2711 opnum = 32 

2712 structure = ( 

2713 ('ServerName', PSRVSVC_HANDLE), 

2714 ('PathName1', WSTR), 

2715 ('PathName2', WSTR), 

2716 ('PathType', DWORD), 

2717 ('Flags', DWORD), 

2718 ) 

2719 

2720class NetprPathCompareResponse(NDRCALL): 

2721 structure = ( 

2722 ('ErrorCode',ULONG), 

2723 ) 

2724 

2725# 3.1.4.32 NetprNameValidate (Opnum 33) 

2726class NetprNameValidate(NDRCALL): 

2727 opnum = 33 

2728 structure = ( 

2729 ('ServerName', PSRVSVC_HANDLE), 

2730 ('Name', WSTR), 

2731 ('NameType', DWORD), 

2732 ('Flags', DWORD), 

2733 ) 

2734 

2735class NetprNameValidateResponse(NDRCALL): 

2736 structure = ( 

2737 ('ErrorCode',ULONG), 

2738 ) 

2739 

2740# 3.1.4.33 NetprNameCanonicalize (Opnum 34) 

2741class NetprNameCanonicalize(NDRCALL): 

2742 opnum = 34 

2743 structure = ( 

2744 ('ServerName', PSRVSVC_HANDLE), 

2745 ('Name', WSTR), 

2746 ('OutbufLen', DWORD), 

2747 ('NameType', DWORD), 

2748 ('Flags', DWORD), 

2749 ) 

2750 

2751class NetprNameCanonicalizeResponse(NDRCALL): 

2752 structure = ( 

2753 ('Outbuf', NDRUniConformantArray), 

2754 ('NameType', DWORD), 

2755 ('ErrorCode',ULONG), 

2756 ) 

2757 

2758# 3.1.4.34 NetprNameCompare (Opnum 35) 

2759class NetprNameCompare(NDRCALL): 

2760 opnum = 35 

2761 structure = ( 

2762 ('ServerName', PSRVSVC_HANDLE), 

2763 ('Name1', WSTR), 

2764 ('Name2', WSTR), 

2765 ('NameType', DWORD), 

2766 ('Flags', DWORD), 

2767 ) 

2768 

2769class NetprNameCompareResponse(NDRCALL): 

2770 structure = ( 

2771 ('ErrorCode',ULONG), 

2772 ) 

2773 

2774# 3.1.4.35 NetrDfsGetVersion (Opnum 43) 

2775class NetrDfsGetVersion(NDRCALL): 

2776 opnum = 43 

2777 structure = ( 

2778 ('ServerName', PSRVSVC_HANDLE), 

2779 ) 

2780 

2781class NetrDfsGetVersionResponse(NDRCALL): 

2782 structure = ( 

2783 ('Version', DWORD), 

2784 ('ErrorCode',ULONG), 

2785 ) 

2786 

2787# 3.1.4.36 NetrDfsCreateLocalPartition (Opnum 44) 

2788class NetrDfsCreateLocalPartition(NDRCALL): 

2789 opnum = 44 

2790 structure = ( 

2791 ('ServerName', PSRVSVC_HANDLE), 

2792 ('ShareName', WSTR), 

2793 ('EntryUid', GUID), 

2794 ('EntryPrefix', WSTR), 

2795 ('ShortName', WSTR), 

2796 ('RelationInfo', NET_DFS_ENTRY_ID_CONTAINER), 

2797 ('Force', DWORD), 

2798 ) 

2799 

2800class NetrDfsCreateLocalPartitionResponse(NDRCALL): 

2801 structure = ( 

2802 ('ErrorCode',ULONG), 

2803 ) 

2804 

2805# 3.1.4.37 NetrDfsDeleteLocalPartition (Opnum 45) 

2806class NetrDfsDeleteLocalPartition(NDRCALL): 

2807 opnum = 45 

2808 structure = ( 

2809 ('ServerName', PSRVSVC_HANDLE), 

2810 ('Uid', GUID), 

2811 ('Prefix', WSTR), 

2812 ) 

2813 

2814class NetrDfsDeleteLocalPartitionResponse(NDRCALL): 

2815 structure = ( 

2816 ('ErrorCode',ULONG), 

2817 ) 

2818 

2819# 3.1.4.38 NetrDfsSetLocalVolumeState (Opnum 46) 

2820class NetrDfsSetLocalVolumeState(NDRCALL): 

2821 opnum = 46 

2822 structure = ( 

2823 ('ServerName', PSRVSVC_HANDLE), 

2824 ('Uid', GUID), 

2825 ('Prefix', WSTR), 

2826 ('State', DWORD), 

2827 ) 

2828 

2829class NetrDfsSetLocalVolumeStateResponse(NDRCALL): 

2830 structure = ( 

2831 ('ErrorCode',ULONG), 

2832 ) 

2833 

2834# 3.1.4.39 NetrDfsCreateExitPoint (Opnum 48) 

2835class NetrDfsCreateExitPoint(NDRCALL): 

2836 opnum = 48 

2837 structure = ( 

2838 ('ServerName', PSRVSVC_HANDLE), 

2839 ('Uid', GUID), 

2840 ('Prefix', WSTR), 

2841 ('Type', DWORD), 

2842 ('ShortPrefixLen', DWORD), 

2843 ) 

2844 

2845class NetrDfsCreateExitPointResponse(NDRCALL): 

2846 structure = ( 

2847 ('ShortPrefix',WCHAR_ARRAY), 

2848 ('ErrorCode',ULONG), 

2849 ) 

2850 

2851# 3.1.4.40 NetrDfsModifyPrefix (Opnum 50) 

2852class NetrDfsModifyPrefix(NDRCALL): 

2853 opnum = 50 

2854 structure = ( 

2855 ('ServerName', PSRVSVC_HANDLE), 

2856 ('Uid', GUID), 

2857 ('Prefix', WSTR), 

2858 ) 

2859 

2860class NetrDfsModifyPrefixResponse(NDRCALL): 

2861 structure = ( 

2862 ('ErrorCode',ULONG), 

2863 ) 

2864 

2865# 3.1.4.41 NetrDfsDeleteExitPoint (Opnum 49) 

2866class NetrDfsDeleteExitPoint(NDRCALL): 

2867 opnum = 49 

2868 structure = ( 

2869 ('ServerName', PSRVSVC_HANDLE), 

2870 ('Uid', GUID), 

2871 ('Prefix', WSTR), 

2872 ('Type', DWORD), 

2873 ) 

2874 

2875class NetrDfsDeleteExitPointResponse(NDRCALL): 

2876 structure = ( 

2877 ('ErrorCode',ULONG), 

2878 ) 

2879 

2880# 3.1.4.42 NetrDfsFixLocalVolume (Opnum 51) 

2881class NetrDfsFixLocalVolume(NDRCALL): 

2882 opnum = 51 

2883 structure = ( 

2884 ('ServerName', PSRVSVC_HANDLE), 

2885 ('VolumeName', WSTR), 

2886 ('EntryType', DWORD), 

2887 ('ServiceType', DWORD), 

2888 ('StgId', WSTR), 

2889 ('EntryUid', GUID), 

2890 ('EntryPrefix', WSTR), 

2891 ('RelationInfo', NET_DFS_ENTRY_ID_CONTAINER), 

2892 ('CreateDisposition', DWORD), 

2893 ) 

2894 

2895class NetrDfsFixLocalVolumeResponse(NDRCALL): 

2896 structure = ( 

2897 ('ErrorCode',ULONG), 

2898 ) 

2899 

2900# 3.1.4.43 NetrDfsManagerReportSiteInfo (Opnum 52) 

2901class NetrDfsManagerReportSiteInfo(NDRCALL): 

2902 opnum = 52 

2903 structure = ( 

2904 ('ServerName', PSRVSVC_HANDLE), 

2905 ('ppSiteInfo', LPDFS_SITELIST_INFO), 

2906 ) 

2907 

2908class NetrDfsManagerReportSiteInfoResponse(NDRCALL): 

2909 structure = ( 

2910 ('ppSiteInfo', LPDFS_SITELIST_INFO), 

2911 ('ErrorCode',ULONG), 

2912 ) 

2913 

2914# 3.1.4.44 NetrServerAliasAdd (Opnum 54) 

2915class NetrServerAliasAdd(NDRCALL): 

2916 opnum = 54 

2917 structure = ( 

2918 ('ServerName', PSRVSVC_HANDLE), 

2919 ('Level', DWORD), 

2920 ('InfoStruct', SERVER_ALIAS_INFO), 

2921 ) 

2922 

2923class NetrServerAliasAddResponse(NDRCALL): 

2924 structure = ( 

2925 ('ErrorCode',ULONG), 

2926 ) 

2927 

2928# 3.1.4.45 NetrServerAliasEnum (Opnum 55) 

2929class NetrServerAliasEnum(NDRCALL): 

2930 opnum = 55 

2931 structure = ( 

2932 ('ServerName', PSRVSVC_HANDLE), 

2933 ('InfoStruct', SERVER_ALIAS_ENUM_STRUCT), 

2934 ('PreferedMaximumLength', DWORD), 

2935 ('ResumeHandle', LPLONG), 

2936 ) 

2937 

2938class NetrServerAliasEnumResponse(NDRCALL): 

2939 structure = ( 

2940 ('InfoStruct',SERVER_ALIAS_ENUM_STRUCT), 

2941 ('TotalEntries',DWORD), 

2942 ('ResumeHandle',LPLONG), 

2943 ('ErrorCode',ULONG), 

2944 ) 

2945 

2946# 3.1.4.46 NetrServerAliasDel (Opnum 56) 

2947class NetrServerAliasDel(NDRCALL): 

2948 opnum = 56 

2949 structure = ( 

2950 ('ServerName', PSRVSVC_HANDLE), 

2951 ('Level', DWORD), 

2952 ('InfoStruct', SERVER_ALIAS_INFO), 

2953 ) 

2954 

2955class NetrServerAliasDelResponse(NDRCALL): 

2956 structure = ( 

2957 ('ErrorCode',ULONG), 

2958 ) 

2959 

2960# 3.1.4.47 NetrShareDelEx (Opnum 57) 

2961class NetrShareDelEx(NDRCALL): 

2962 opnum = 57 

2963 structure = ( 

2964 ('ServerName', PSRVSVC_HANDLE), 

2965 ('Level', DWORD), 

2966 ('ShareInfo', SHARE_INFO), 

2967 ) 

2968 

2969class NetrShareDelExResponse(NDRCALL): 

2970 structure = ( 

2971 ('ErrorCode',ULONG), 

2972 ) 

2973 

2974################################################################################ 

2975# OPNUMs and their corresponding structures 

2976################################################################################ 

2977OPNUMS = { 

2978 8 : (NetrConnectionEnum, NetrConnectionEnumResponse), 

2979 9 : (NetrFileEnum, NetrFileEnumResponse), 

298010 : (NetrFileGetInfo, NetrFileGetInfoResponse), 

298111 : (NetrFileClose, NetrFileCloseResponse), 

298212 : (NetrSessionEnum, NetrSessionEnumResponse), 

298313 : (NetrSessionDel, NetrSessionDelResponse), 

298414 : (NetrShareAdd, NetrShareAddResponse), 

298515 : (NetrShareEnum, NetrShareEnumResponse), 

298616 : (NetrShareGetInfo, NetrShareGetInfoResponse), 

298717 : (NetrShareSetInfo, NetrShareSetInfoResponse), 

298818 : (NetrShareDel, NetrShareDelResponse), 

298919 : (NetrShareDelSticky, NetrShareDelStickyResponse), 

299020 : (NetrShareCheck, NetrShareCheckResponse), 

299121 : (NetrServerGetInfo, NetrServerGetInfoResponse), 

299222 : (NetrServerSetInfo, NetrServerSetInfoResponse), 

299323 : (NetrServerDiskEnum, NetrServerDiskEnumResponse), 

299424 : (NetrServerStatisticsGet, NetrServerStatisticsGetResponse), 

299525 : (NetrServerTransportAdd, NetrServerTransportAddResponse), 

299626 : (NetrServerTransportEnum, NetrServerTransportEnumResponse), 

299727 : (NetrServerTransportDel, NetrServerTransportDelResponse), 

299828 : (NetrRemoteTOD, NetrRemoteTODResponse), 

299930 : (NetprPathType, NetprPathTypeResponse), 

300031 : (NetprPathCanonicalize, NetprPathCanonicalizeResponse), 

300132 : (NetprPathCompare, NetprPathCompareResponse), 

300233 : (NetprNameValidate, NetprNameValidateResponse), 

300334 : (NetprNameCanonicalize, NetprNameCanonicalizeResponse), 

300435 : (NetprNameCompare, NetprNameCompareResponse), 

300536 : (NetrShareEnumSticky, NetrShareEnumStickyResponse), 

300637 : (NetrShareDelStart, NetrShareDelStartResponse), 

300738 : (NetrShareDelCommit, NetrShareDelCommitResponse), 

300839 : (NetrpGetFileSecurity, NetrpGetFileSecurityResponse), 

300940 : (NetrpSetFileSecurity, NetrpSetFileSecurityResponse), 

301041 : (NetrServerTransportAddEx, NetrServerTransportAddExResponse), 

301143 : (NetrDfsGetVersion, NetrDfsGetVersionResponse), 

301244 : (NetrDfsCreateLocalPartition, NetrDfsCreateLocalPartitionResponse), 

301345 : (NetrDfsDeleteLocalPartition, NetrDfsDeleteLocalPartitionResponse), 

301446 : (NetrDfsSetLocalVolumeState, NetrDfsSetLocalVolumeStateResponse), 

301548 : (NetrDfsCreateExitPoint, NetrDfsCreateExitPointResponse), 

301649 : (NetrDfsDeleteExitPoint, NetrDfsDeleteExitPointResponse), 

301750 : (NetrDfsModifyPrefix, NetrDfsModifyPrefixResponse), 

301851 : (NetrDfsFixLocalVolume, NetrDfsFixLocalVolumeResponse), 

301952 : (NetrDfsManagerReportSiteInfo, NetrDfsManagerReportSiteInfoResponse), 

302053 : (NetrServerTransportDelEx, NetrServerTransportDelExResponse), 

302154 : (NetrServerAliasAdd, NetrServerAliasAddResponse), 

302255 : (NetrServerAliasEnum, NetrServerAliasEnumResponse), 

302356 : (NetrServerAliasDel, NetrServerAliasDelResponse), 

302457 : (NetrShareDelEx, NetrShareDelExResponse), 

3025} 

3026 

3027################################################################################ 

3028# HELPER FUNCTIONS 

3029################################################################################ 

3030def hNetrConnectionEnum(dce, qualifier, level, resumeHandle = 0, preferedMaximumLength = 0xffffffff): 

3031 request = NetrConnectionEnum() 

3032 request['ServerName'] = NULL 

3033 request['Qualifier'] = qualifier 

3034 request['InfoStruct']['Level'] = level 

3035 request['InfoStruct']['ConnectInfo']['tag'] = level 

3036 request['PreferedMaximumLength'] = preferedMaximumLength 

3037 request['ResumeHandle'] = resumeHandle 

3038 return dce.request(request) 

3039 

3040def hNetrFileEnum(dce, basePath, userName, level, resumeHandle = 0, preferedMaximumLength = 0xffffffff): 

3041 request = NetrFileEnum() 

3042 request['ServerName'] = NULL 

3043 request['BasePath'] = basePath 

3044 request['UserName'] = userName 

3045 request['InfoStruct']['Level'] = level 

3046 request['InfoStruct']['FileInfo']['tag'] = level 

3047 request['PreferedMaximumLength'] = preferedMaximumLength 

3048 request['ResumeHandle'] = resumeHandle 

3049 return dce.request(request) 

3050 

3051def hNetrFileGetInfo(dce, fileId, level): 

3052 request = NetrFileGetInfo() 

3053 request['ServerName'] = NULL 

3054 request['FileId'] = fileId 

3055 request['Level'] = level 

3056 return dce.request(request) 

3057 

3058def hNetrFileClose(dce, fileId): 

3059 request = NetrFileClose() 

3060 request['ServerName'] = NULL 

3061 request['FileId'] = fileId 

3062 return dce.request(request) 

3063 

3064def hNetrSessionEnum(dce, clientName, userName, level, resumeHandle = 0, preferedMaximumLength = 0xffffffff): 

3065 request = NetrSessionEnum() 

3066 request['ServerName'] = NULL 

3067 request['ClientName'] = clientName 

3068 request['UserName'] = userName 

3069 request['InfoStruct']['Level'] = level 

3070 request['InfoStruct']['SessionInfo']['tag'] = level 

3071 request['InfoStruct']['SessionInfo']['Level%d'%level]['Buffer'] = NULL 

3072 request['PreferedMaximumLength'] = preferedMaximumLength 

3073 request['ResumeHandle'] = resumeHandle 

3074 

3075 return dce.request(request) 

3076 

3077def hNetrSessionDel(dce, clientName, userName): 

3078 request = NetrSessionDel() 

3079 request['ServerName'] = NULL 

3080 request['ClientName'] = clientName 

3081 request['UserName'] = userName 

3082 return dce.request(request) 

3083 

3084def hNetrShareAdd(dce, level, infoStruct): 

3085 request = NetrShareAdd() 

3086 request['ServerName'] = NULL 

3087 request['Level'] = level 

3088 request['InfoStruct']['tag'] = level 

3089 request['InfoStruct']['ShareInfo%d'%level] = infoStruct 

3090 return dce.request(request) 

3091 

3092def hNetrShareDel(dce, netName): 

3093 request = NetrShareDel() 

3094 request['ServerName'] = NULL 

3095 request['NetName'] = netName 

3096 return dce.request(request) 

3097 

3098def hNetrShareEnum(dce, level, resumeHandle = 0, preferedMaximumLength = 0xffffffff): 

3099 request = NetrShareEnum() 

3100 request['ServerName'] = '\x00' 

3101 request['PreferedMaximumLength'] = preferedMaximumLength 

3102 request['ResumeHandle'] = resumeHandle 

3103 request['InfoStruct']['Level'] = level 

3104 request['InfoStruct']['ShareInfo']['tag'] = level 

3105 request['InfoStruct']['ShareInfo']['Level%d'%level]['Buffer'] = NULL 

3106 

3107 return dce.request(request) 

3108 

3109def hNetrShareEnumSticky(dce, level, resumeHandle = 0, preferedMaximumLength = 0xffffffff): 

3110 request = NetrShareEnumSticky() 

3111 request['ServerName'] = NULL 

3112 request['PreferedMaximumLength'] = preferedMaximumLength 

3113 request['ResumeHandle'] = resumeHandle 

3114 request['InfoStruct']['Level'] = level 

3115 request['InfoStruct']['ShareInfo']['tag'] = level 

3116 request['InfoStruct']['ShareInfo']['Level%d'%level]['Buffer'] = NULL 

3117 

3118 return dce.request(request) 

3119 

3120def hNetrShareGetInfo(dce, netName, level): 

3121 request = NetrShareGetInfo() 

3122 request['ServerName'] = NULL 

3123 request['NetName'] = netName 

3124 request['Level'] = level 

3125 return dce.request(request) 

3126 

3127def hNetrShareSetInfo(dce, netName, level, shareInfo): 

3128 request = NetrShareSetInfo() 

3129 request['ServerName'] = NULL 

3130 request['NetName'] = netName 

3131 request['Level'] = level 

3132 request['ShareInfo']['tag'] = level 

3133 request['ShareInfo']['ShareInfo%d'%level] = shareInfo 

3134 

3135 return dce.request(request) 

3136 

3137def hNetrShareDelSticky(dce, netName): 

3138 request = NetrShareDelSticky() 

3139 request['ServerName'] = NULL 

3140 request['NetName'] = netName 

3141 return dce.request(request) 

3142 

3143# Sacala la h a estos 2, y tira todos los test cases juntos 

3144def hNetrShareDelStart(dce, netName): 

3145 request = NetrShareDelStart() 

3146 request['ServerName'] = NULL 

3147 request['NetName'] = netName 

3148 return dce.request(request) 

3149 

3150def hNetrShareDelCommit(dce, contextHandle): 

3151 request = NetrShareDelCommit() 

3152 request['ContextHandle'] = contextHandle 

3153 return dce.request(request) 

3154 

3155def hNetrShareCheck(dce, device): 

3156 request = NetrShareCheck() 

3157 request['ServerName'] = NULL 

3158 request['Device'] = device 

3159 return dce.request(request) 

3160 

3161def hNetrServerGetInfo(dce, level): 

3162 request = NetrServerGetInfo() 

3163 request['ServerName'] = NULL 

3164 request['Level'] = level 

3165 return dce.request(request) 

3166 

3167def hNetrServerDiskEnum(dce, level, resumeHandle = 0, preferedMaximumLength = 0xffffffff): 

3168 request = NetrServerDiskEnum() 

3169 request['ServerName'] = NULL 

3170 request['PreferedMaximumLength'] = preferedMaximumLength 

3171 request['ResumeHandle'] = resumeHandle 

3172 request['Level'] = level 

3173 request['DiskInfoStruct']['Buffer'] = NULL 

3174 return dce.request(request) 

3175 

3176def hNetrServerStatisticsGet(dce, service, level, options): 

3177 request = NetrServerStatisticsGet() 

3178 request['ServerName'] = NULL 

3179 request['Service'] = service 

3180 request['Level'] = level 

3181 request['Options'] = options 

3182 return dce.request(request) 

3183 

3184def hNetrRemoteTOD(dce): 

3185 request = NetrRemoteTOD() 

3186 request['ServerName'] = NULL 

3187 return dce.request(request) 

3188 

3189def hNetrServerTransportEnum(dce, level, resumeHandle = 0, preferedMaximumLength = 0xffffffff): 

3190 request = NetrServerTransportEnum() 

3191 request['ServerName'] = NULL 

3192 request['PreferedMaximumLength'] = preferedMaximumLength 

3193 request['ResumeHandle'] = resumeHandle 

3194 request['InfoStruct']['Level'] = level 

3195 request['InfoStruct']['XportInfo']['tag'] = level 

3196 request['InfoStruct']['XportInfo']['Level%d' % level]['Buffer'] = NULL 

3197 return dce.request(request) 

3198 

3199def hNetrpGetFileSecurity(dce, shareName, lpFileName, requestedInformation): 

3200 request = NetrpGetFileSecurity() 

3201 request['ServerName'] = NULL 

3202 request['ShareName'] = shareName 

3203 request['lpFileName'] = lpFileName 

3204 request['RequestedInformation'] = requestedInformation 

3205 retVal = dce.request(request) 

3206 return b''.join(retVal['SecurityDescriptor']['Buffer']) 

3207 

3208def hNetrpSetFileSecurity(dce, shareName, lpFileName, securityInformation, securityDescriptor): 

3209 request = NetrpSetFileSecurity() 

3210 request['ServerName'] = NULL 

3211 request['ShareName'] = shareName 

3212 request['lpFileName'] = lpFileName 

3213 request['SecurityInformation'] = securityInformation 

3214 request['SecurityDescriptor']['Length'] = len(securityDescriptor) 

3215 request['SecurityDescriptor']['Buffer'] = list(securityDescriptor) 

3216 return dce.request(request) 

3217 

3218def hNetprPathType(dce, pathName, flags): 

3219 request = NetprPathType() 

3220 request['ServerName'] = NULL 

3221 request['PathName'] = pathName 

3222 request['Flags'] = flags 

3223 return dce.request(request) 

3224 

3225def hNetprPathCanonicalize(dce, pathName, prefix, outbufLen=50, pathType=0, flags=0): 

3226 request = NetprPathCanonicalize() 

3227 request['ServerName'] = NULL 

3228 request['PathName'] = pathName 

3229 request['OutbufLen'] = outbufLen 

3230 request['Prefix'] = prefix 

3231 request['PathType'] = pathType 

3232 request['Flags'] = flags 

3233 return dce.request(request) 

3234 

3235def hNetprPathCompare(dce, pathName1, pathName2, pathType=0, flags=0): 

3236 request = NetprPathCompare() 

3237 request['ServerName'] = NULL 

3238 request['PathName1'] = pathName1 

3239 request['PathName2'] = pathName2 

3240 request['PathType'] = pathType 

3241 request['Flags'] = flags 

3242 return dce.request(request) 

3243 

3244def hNetprNameValidate(dce, name, nameType, flags=0): 

3245 request = NetprNameValidate() 

3246 request['ServerName'] = NULL 

3247 request['Name'] = name 

3248 request['NameType'] = nameType 

3249 request['Flags'] = flags 

3250 return dce.request(request) 

3251 

3252def hNetprNameCanonicalize(dce, name, outbufLen=50, nameType=0, flags=0): 

3253 request = NetprNameCanonicalize() 

3254 request['ServerName'] = NULL 

3255 request['Name'] = name 

3256 request['OutbufLen'] = outbufLen 

3257 request['NameType'] = nameType 

3258 request['Flags'] = flags 

3259 return dce.request(request) 

3260 

3261def hNetprNameCompare(dce, name1, name2, nameType=0, flags=0): 

3262 request = NetprNameCompare() 

3263 request['ServerName'] = NULL 

3264 request['Name1'] = name1 

3265 request['Name2'] = name2 

3266 request['NameType'] = nameType 

3267 request['Flags'] = flags 

3268 return dce.request(request) 

3269 

3270def hNetrDfsGetVersion(dce): 

3271 request = NetrDfsGetVersion() 

3272 request['ServerName'] = NULL 

3273 return dce.request(request) 

3274 

3275def hNetrServerAliasAdd(dce, level, aliasInfo): 

3276 request = NetrServerAliasAdd() 

3277 request['ServerName'] = NULL 

3278 request['Level'] = level 

3279 request['InfoStruct']['tag'] = level 

3280 request['InfoStruct']['ServerAliasInfo%d'%level] = aliasInfo 

3281 return dce.request(request) 

3282 

3283def hNetrServerAliasDel(dce, level, aliasInfo): 

3284 request = NetrServerAliasDel() 

3285 request['ServerName'] = NULL 

3286 request['Level'] = level 

3287 request['InfoStruct']['tag'] = level 

3288 request['InfoStruct']['ServerAliasInfo%d'%level] = aliasInfo 

3289 return dce.request(request) 

3290 

3291def hNetrServerAliasEnum(dce, level, resumeHandle = 0, preferedMaximumLength = 0xffffffff): 

3292 request = NetrServerAliasEnum() 

3293 request['ServerName'] = NULL 

3294 request['InfoStruct']['Level'] = level 

3295 request['InfoStruct']['ServerAliasInfo']['tag'] = level 

3296 request['InfoStruct']['ServerAliasInfo']['Level%d' % level]['Buffer'] = NULL 

3297 request['PreferedMaximumLength'] = preferedMaximumLength 

3298 request['ResumeHandle'] = resumeHandle 

3299 return dce.request(request)