Artifact 95dca8c0f3ce0fc0ab7edf045c46895a7991b033:
- File
src/win32/lmshare.d
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
The problem was __gshared. Replacing it with TLS fixed the issue. Remaining problem is that "hack.d"'s CloseHandle hack is not working anymore.
(user: kinaba) [annotate]
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
0000: 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a /***************
0010: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0020: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0030: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0040: 2a 2a 2a 2a 2a 2a 2a 2a 5c 0d 0a 2a 20 20 20 20 ********\..*
0050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0060: 20 20 20 20 20 20 20 20 20 20 20 6c 6d 73 68 61 lmsha
0070: 72 65 2e 64 20 20 20 20 20 20 20 20 20 20 20 20 re.d
0080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0090: 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20 20 *..*
00a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d *.
00e0: 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .*
00f0: 20 20 20 20 20 20 20 20 20 57 69 6e 64 6f 77 73 Windows
0100: 20 41 50 49 20 68 65 61 64 65 72 20 6d 6f 64 75 API header modu
0110: 6c 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 le
0120: 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 20 20 20 *..*
0130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0170: 20 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20 *..*
0180: 20 20 20 20 20 20 20 20 20 54 72 61 6e 73 6c 61 Transla
0190: 74 65 64 20 66 72 6f 6d 20 4d 69 6e 47 57 20 57 ted from MinGW W
01a0: 69 6e 64 6f 77 73 20 68 65 61 64 65 72 73 20 20 indows headers
01b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a *
01c0: 0d 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..*
01d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0200: 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 20 20 *..*
0210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0220: 20 20 20 20 20 50 6c 61 63 65 64 20 69 6e 74 6f Placed into
0230: 20 70 75 62 6c 69 63 20 64 6f 6d 61 69 6e 20 20 public domain
0240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0250: 20 20 20 20 20 2a 0d 0a 5c 2a 2a 2a 2a 2a 2a 2a *..\*******
0260: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0270: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0280: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0290: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
02a0: 2f 0d 0a 6d 6f 64 75 6c 65 20 77 69 6e 33 32 2e /..module win32.
02b0: 6c 6d 73 68 61 72 65 3b 0d 0a 70 72 61 67 6d 61 lmshare;..pragma
02c0: 28 6c 69 62 2c 20 22 6e 65 74 61 70 69 22 29 3b (lib, "netapi");
02d0: 0d 0a 0d 0a 69 6d 70 6f 72 74 20 77 69 6e 33 32 ....import win32
02e0: 2e 6c 6d 63 6f 6e 73 3b 0d 0a 70 72 69 76 61 74 .lmcons;..privat
02f0: 65 20 69 6d 70 6f 72 74 20 77 69 6e 33 32 2e 77 e import win32.w
0300: 33 32 61 70 69 2c 20 77 69 6e 33 32 2e 77 69 6e 32api, win32.win
0310: 64 65 66 3b 0d 0a 0d 0a 0d 0a 63 6f 6e 73 74 20 def;......const
0320: 53 48 41 52 45 5f 4e 45 54 4e 41 4d 45 5f 50 41 SHARE_NETNAME_PA
0330: 52 4d 4e 55 4d 20 20 20 20 20 20 3d 20 31 3b 0d RMNUM = 1;.
0340: 0a 63 6f 6e 73 74 20 53 48 41 52 45 5f 54 59 50 .const SHARE_TYP
0350: 45 5f 50 41 52 4d 4e 55 4d 20 20 20 20 20 20 20 E_PARMNUM
0360: 20 20 3d 20 33 3b 0d 0a 63 6f 6e 73 74 20 53 48 = 3;..const SH
0370: 41 52 45 5f 52 45 4d 41 52 4b 5f 50 41 52 4d 4e ARE_REMARK_PARMN
0380: 55 4d 20 20 20 20 20 20 20 3d 20 34 3b 0d 0a 63 UM = 4;..c
0390: 6f 6e 73 74 20 53 48 41 52 45 5f 50 45 52 4d 49 onst SHARE_PERMI
03a0: 53 53 49 4f 4e 53 5f 50 41 52 4d 4e 55 4d 20 20 SSIONS_PARMNUM
03b0: 3d 20 35 3b 0d 0a 63 6f 6e 73 74 20 53 48 41 52 = 5;..const SHAR
03c0: 45 5f 4d 41 58 5f 55 53 45 53 5f 50 41 52 4d 4e E_MAX_USES_PARMN
03d0: 55 4d 20 20 20 20 20 3d 20 36 3b 0d 0a 63 6f 6e UM = 6;..con
03e0: 73 74 20 53 48 41 52 45 5f 43 55 52 52 45 4e 54 st SHARE_CURRENT
03f0: 5f 55 53 45 53 5f 50 41 52 4d 4e 55 4d 20 3d 20 _USES_PARMNUM =
0400: 37 3b 0d 0a 63 6f 6e 73 74 20 53 48 41 52 45 5f 7;..const SHARE_
0410: 50 41 54 48 5f 50 41 52 4d 4e 55 4d 20 20 20 20 PATH_PARMNUM
0420: 20 20 20 20 20 3d 20 38 3b 0d 0a 63 6f 6e 73 74 = 8;..const
0430: 20 53 48 41 52 45 5f 50 41 53 53 57 44 5f 50 41 SHARE_PASSWD_PA
0440: 52 4d 4e 55 4d 20 20 20 20 20 20 20 3d 20 39 3b RMNUM = 9;
0450: 0d 0a 63 6f 6e 73 74 20 53 48 41 52 45 5f 46 49 ..const SHARE_FI
0460: 4c 45 5f 53 44 5f 50 41 52 4d 4e 55 4d 20 20 20 LE_SD_PARMNUM
0470: 20 20 20 3d 20 35 30 31 3b 0d 0a 63 6f 6e 73 74 = 501;..const
0480: 20 53 48 41 52 45 5f 52 45 4d 41 52 4b 5f 49 4e SHARE_REMARK_IN
0490: 46 4f 4c 45 56 45 4c 20 20 20 3d 20 50 41 52 4d FOLEVEL = PARM
04a0: 4e 55 4d 5f 42 41 53 45 5f 49 4e 46 4f 4c 45 56 NUM_BASE_INFOLEV
04b0: 45 4c 20 2b 20 53 48 41 52 45 5f 52 45 4d 41 52 EL + SHARE_REMAR
04c0: 4b 5f 50 41 52 4d 4e 55 4d 3b 0d 0a 63 6f 6e 73 K_PARMNUM;..cons
04d0: 74 20 53 48 41 52 45 5f 4d 41 58 5f 55 53 45 53 t SHARE_MAX_USES
04e0: 5f 49 4e 46 4f 4c 45 56 45 4c 20 3d 20 50 41 52 _INFOLEVEL = PAR
04f0: 4d 4e 55 4d 5f 42 41 53 45 5f 49 4e 46 4f 4c 45 MNUM_BASE_INFOLE
0500: 56 45 4c 20 2b 20 53 48 41 52 45 5f 4d 41 58 5f VEL + SHARE_MAX_
0510: 55 53 45 53 5f 50 41 52 4d 4e 55 4d 3b 0d 0a 63 USES_PARMNUM;..c
0520: 6f 6e 73 74 20 53 48 41 52 45 5f 46 49 4c 45 5f onst SHARE_FILE_
0530: 53 44 5f 49 4e 46 4f 4c 45 56 45 4c 20 20 3d 20 SD_INFOLEVEL =
0540: 50 41 52 4d 4e 55 4d 5f 42 41 53 45 5f 49 4e 46 PARMNUM_BASE_INF
0550: 4f 4c 45 56 45 4c 20 2b 20 53 48 41 52 45 5f 46 OLEVEL + SHARE_F
0560: 49 4c 45 5f 53 44 5f 50 41 52 4d 4e 55 4d 3b 0d ILE_SD_PARMNUM;.
0570: 0a 0d 0a 63 6f 6e 73 74 20 53 48 49 31 5f 4e 55 ...const SHI1_NU
0580: 4d 5f 45 4c 45 4d 45 4e 54 53 20 3d 20 34 3b 0d M_ELEMENTS = 4;.
0590: 0a 63 6f 6e 73 74 20 53 48 49 32 5f 4e 55 4d 5f .const SHI2_NUM_
05a0: 45 4c 45 4d 45 4e 54 53 20 3d 20 31 30 3b 0d 0a ELEMENTS = 10;..
05b0: 0d 0a 63 6f 6e 73 74 20 53 54 59 50 45 5f 44 49 ..const STYPE_DI
05c0: 53 4b 54 52 45 45 20 3d 20 30 3b 0d 0a 63 6f 6e SKTREE = 0;..con
05d0: 73 74 20 53 54 59 50 45 5f 50 52 49 4e 54 51 20 st STYPE_PRINTQ
05e0: 20 20 3d 20 31 3b 0d 0a 63 6f 6e 73 74 20 53 54 = 1;..const ST
05f0: 59 50 45 5f 44 45 56 49 43 45 20 20 20 3d 20 32 YPE_DEVICE = 2
0600: 3b 0d 0a 63 6f 6e 73 74 20 53 54 59 50 45 5f 49 ;..const STYPE_I
0610: 50 43 20 20 20 20 20 20 3d 20 33 3b 0d 0a 63 6f PC = 3;..co
0620: 6e 73 74 20 53 54 59 50 45 5f 44 46 53 20 20 20 nst STYPE_DFS
0630: 20 20 20 3d 20 31 30 30 3b 0d 0a 63 6f 6e 73 74 = 100;..const
0640: 20 53 54 59 50 45 5f 53 50 45 43 49 41 4c 20 20 STYPE_SPECIAL
0650: 3d 20 30 78 38 30 30 30 30 30 30 30 3b 0d 0a 0d = 0x80000000;...
0660: 0a 63 6f 6e 73 74 20 44 57 4f 52 44 20 53 48 49 .const DWORD SHI
0670: 5f 55 53 45 53 5f 55 4e 4c 49 4d 49 54 45 44 20 _USES_UNLIMITED
0680: 3d 20 2d 31 3b 0d 0a 0d 0a 63 6f 6e 73 74 20 53 = -1;....const S
0690: 45 53 53 5f 47 55 45 53 54 20 3d 20 31 3b 0d 0a ESS_GUEST = 1;..
06a0: 63 6f 6e 73 74 20 53 45 53 53 5f 4e 4f 45 4e 43 const SESS_NOENC
06b0: 52 59 50 54 49 4f 4e 20 3d 20 32 3b 0d 0a 63 6f RYPTION = 2;..co
06c0: 6e 73 74 20 53 45 53 49 31 5f 4e 55 4d 5f 45 4c nst SESI1_NUM_EL
06d0: 45 4d 45 4e 54 53 20 3d 20 38 3b 0d 0a 63 6f 6e EMENTS = 8;..con
06e0: 73 74 20 53 45 53 49 32 5f 4e 55 4d 5f 45 4c 45 st SESI2_NUM_ELE
06f0: 4d 45 4e 54 53 20 3d 20 39 3b 0d 0a 0d 0a 63 6f MENTS = 9;....co
0700: 6e 73 74 20 50 45 52 4d 5f 46 49 4c 45 5f 52 45 nst PERM_FILE_RE
0710: 41 44 20 20 20 3d 20 31 3b 0d 0a 63 6f 6e 73 74 AD = 1;..const
0720: 20 50 45 52 4d 5f 46 49 4c 45 5f 57 52 49 54 45 PERM_FILE_WRITE
0730: 20 20 3d 20 32 3b 0d 0a 63 6f 6e 73 74 20 50 45 = 2;..const PE
0740: 52 4d 5f 46 49 4c 45 5f 43 52 45 41 54 45 20 3d RM_FILE_CREATE =
0750: 20 34 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 46 49 4;....struct FI
0760: 4c 45 5f 49 4e 46 4f 5f 32 20 7b 0d 0a 09 44 57 LE_INFO_2 {...DW
0770: 4f 52 44 20 66 69 32 5f 69 64 3b 0d 0a 7d 0d 0a ORD fi2_id;..}..
0780: 61 6c 69 61 73 20 46 49 4c 45 5f 49 4e 46 4f 5f alias FILE_INFO_
0790: 32 2a 20 50 46 49 4c 45 5f 49 4e 46 4f 5f 32 2c 2* PFILE_INFO_2,
07a0: 20 4c 50 46 49 4c 45 5f 49 4e 46 4f 5f 32 3b 0d LPFILE_INFO_2;.
07b0: 0a 0d 0a 73 74 72 75 63 74 20 46 49 4c 45 5f 49 ...struct FILE_I
07c0: 4e 46 4f 5f 33 20 7b 0d 0a 09 44 57 4f 52 44 20 NFO_3 {...DWORD
07d0: 66 69 33 5f 69 64 3b 0d 0a 09 44 57 4f 52 44 20 fi3_id;...DWORD
07e0: 66 69 33 5f 70 65 72 6d 69 73 73 69 6f 6e 73 3b fi3_permissions;
07f0: 0d 0a 09 44 57 4f 52 44 20 66 69 33 5f 6e 75 6d ...DWORD fi3_num
0800: 5f 6c 6f 63 6b 73 3b 0d 0a 09 4c 50 54 53 54 52 _locks;...LPTSTR
0810: 20 66 69 33 5f 70 61 74 68 6e 61 6d 65 3b 0d 0a fi3_pathname;..
0820: 09 4c 50 54 53 54 52 20 66 69 33 5f 75 73 65 72 .LPTSTR fi3_user
0830: 6e 61 6d 65 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 name;..}..alias
0840: 46 49 4c 45 5f 49 4e 46 4f 5f 33 2a 20 50 46 49 FILE_INFO_3* PFI
0850: 4c 45 5f 49 4e 46 4f 5f 33 2c 20 4c 50 46 49 4c LE_INFO_3, LPFIL
0860: 45 5f 49 4e 46 4f 5f 33 3b 0d 0a 0d 0a 73 74 72 E_INFO_3;....str
0870: 75 63 74 20 53 48 41 52 45 5f 49 4e 46 4f 5f 30 uct SHARE_INFO_0
0880: 20 7b 0d 0a 09 4c 50 54 53 54 52 20 73 68 69 30 {...LPTSTR shi0
0890: 5f 6e 65 74 6e 61 6d 65 3b 0d 0a 7d 0d 0a 61 6c _netname;..}..al
08a0: 69 61 73 20 53 48 41 52 45 5f 49 4e 46 4f 5f 30 ias SHARE_INFO_0
08b0: 2a 20 50 53 48 41 52 45 5f 49 4e 46 4f 5f 30 2c * PSHARE_INFO_0,
08c0: 20 4c 50 53 48 41 52 45 5f 49 4e 46 4f 5f 30 3b LPSHARE_INFO_0;
08d0: 0d 0a 0d 0a 73 74 72 75 63 74 20 53 48 41 52 45 ....struct SHARE
08e0: 5f 49 4e 46 4f 5f 31 20 7b 0d 0a 09 4c 50 54 53 _INFO_1 {...LPTS
08f0: 54 52 20 73 68 69 31 5f 6e 65 74 6e 61 6d 65 3b TR shi1_netname;
0900: 0d 0a 09 44 57 4f 52 44 20 73 68 69 31 5f 74 79 ...DWORD shi1_ty
0910: 70 65 3b 0d 0a 09 4c 50 54 53 54 52 20 73 68 69 pe;...LPTSTR shi
0920: 31 5f 72 65 6d 61 72 6b 3b 0d 0a 7d 0d 0a 61 6c 1_remark;..}..al
0930: 69 61 73 20 53 48 41 52 45 5f 49 4e 46 4f 5f 31 ias SHARE_INFO_1
0940: 2a 20 50 53 48 41 52 45 5f 49 4e 46 4f 5f 31 2c * PSHARE_INFO_1,
0950: 20 4c 50 53 48 41 52 45 5f 49 4e 46 4f 5f 31 3b LPSHARE_INFO_1;
0960: 0d 0a 0d 0a 73 74 72 75 63 74 20 53 48 41 52 45 ....struct SHARE
0970: 5f 49 4e 46 4f 5f 32 20 7b 0d 0a 09 4c 50 54 53 _INFO_2 {...LPTS
0980: 54 52 20 73 68 69 32 5f 6e 65 74 6e 61 6d 65 3b TR shi2_netname;
0990: 0d 0a 09 44 57 4f 52 44 20 73 68 69 32 5f 74 79 ...DWORD shi2_ty
09a0: 70 65 3b 0d 0a 09 4c 50 54 53 54 52 20 73 68 69 pe;...LPTSTR shi
09b0: 32 5f 72 65 6d 61 72 6b 3b 0d 0a 09 44 57 4f 52 2_remark;...DWOR
09c0: 44 20 73 68 69 32 5f 70 65 72 6d 69 73 73 69 6f D shi2_permissio
09d0: 6e 73 3b 0d 0a 09 44 57 4f 52 44 20 73 68 69 32 ns;...DWORD shi2
09e0: 5f 6d 61 78 5f 75 73 65 73 3b 0d 0a 09 44 57 4f _max_uses;...DWO
09f0: 52 44 20 73 68 69 32 5f 63 75 72 72 65 6e 74 5f RD shi2_current_
0a00: 75 73 65 73 3b 0d 0a 09 4c 50 54 53 54 52 20 73 uses;...LPTSTR s
0a10: 68 69 32 5f 70 61 74 68 3b 0d 0a 09 4c 50 54 53 hi2_path;...LPTS
0a20: 54 52 20 73 68 69 32 5f 70 61 73 73 77 64 3b 0d TR shi2_passwd;.
0a30: 0a 7d 0d 0a 61 6c 69 61 73 20 53 48 41 52 45 5f .}..alias SHARE_
0a40: 49 4e 46 4f 5f 32 2a 20 50 53 48 41 52 45 5f 49 INFO_2* PSHARE_I
0a50: 4e 46 4f 5f 32 2c 20 4c 50 53 48 41 52 45 5f 49 NFO_2, LPSHARE_I
0a60: 4e 46 4f 5f 32 3b 0d 0a 0d 0a 73 74 72 75 63 74 NFO_2;....struct
0a70: 20 53 48 41 52 45 5f 49 4e 46 4f 5f 35 30 32 20 SHARE_INFO_502
0a80: 7b 0d 0a 09 4c 50 54 53 54 52 20 73 68 69 35 30 {...LPTSTR shi50
0a90: 32 5f 6e 65 74 6e 61 6d 65 3b 0d 0a 09 44 57 4f 2_netname;...DWO
0aa0: 52 44 20 73 68 69 35 30 32 5f 74 79 70 65 3b 0d RD shi502_type;.
0ab0: 0a 09 4c 50 54 53 54 52 20 73 68 69 35 30 32 5f ..LPTSTR shi502_
0ac0: 72 65 6d 61 72 6b 3b 0d 0a 09 44 57 4f 52 44 20 remark;...DWORD
0ad0: 73 68 69 35 30 32 5f 70 65 72 6d 69 73 73 69 6f shi502_permissio
0ae0: 6e 73 3b 0d 0a 09 44 57 4f 52 44 20 73 68 69 35 ns;...DWORD shi5
0af0: 30 32 5f 6d 61 78 5f 75 73 65 73 3b 0d 0a 09 44 02_max_uses;...D
0b00: 57 4f 52 44 20 73 68 69 35 30 32 5f 63 75 72 72 WORD shi502_curr
0b10: 65 6e 74 5f 75 73 65 73 3b 0d 0a 09 4c 50 54 53 ent_uses;...LPTS
0b20: 54 52 20 73 68 69 35 30 32 5f 70 61 74 68 3b 0d TR shi502_path;.
0b30: 0a 09 4c 50 54 53 54 52 20 73 68 69 35 30 32 5f ..LPTSTR shi502_
0b40: 70 61 73 73 77 64 3b 0d 0a 09 44 57 4f 52 44 20 passwd;...DWORD
0b50: 73 68 69 35 30 32 5f 72 65 73 65 72 76 65 64 3b shi502_reserved;
0b60: 0d 0a 09 50 53 45 43 55 52 49 54 59 5f 44 45 53 ...PSECURITY_DES
0b70: 43 52 49 50 54 4f 52 20 73 68 69 35 30 32 5f 73 CRIPTOR shi502_s
0b80: 65 63 75 72 69 74 79 5f 64 65 73 63 72 69 70 74 ecurity_descript
0b90: 6f 72 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 53 48 or;..}..alias SH
0ba0: 41 52 45 5f 49 4e 46 4f 5f 35 30 32 2a 20 50 53 ARE_INFO_502* PS
0bb0: 48 41 52 45 5f 49 4e 46 4f 5f 35 30 32 2c 20 4c HARE_INFO_502, L
0bc0: 50 53 48 41 52 45 5f 49 4e 46 4f 5f 35 30 32 3b PSHARE_INFO_502;
0bd0: 0d 0a 0d 0a 73 74 72 75 63 74 20 53 48 41 52 45 ....struct SHARE
0be0: 5f 49 4e 46 4f 5f 31 30 30 34 20 7b 0d 0a 09 4c _INFO_1004 {...L
0bf0: 50 54 53 54 52 20 73 68 69 31 30 30 34 5f 72 65 PTSTR shi1004_re
0c00: 6d 61 72 6b 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 mark;..}..alias
0c10: 53 48 41 52 45 5f 49 4e 46 4f 5f 31 30 30 34 2a SHARE_INFO_1004*
0c20: 20 50 53 48 41 52 45 5f 49 4e 46 4f 5f 31 30 30 PSHARE_INFO_100
0c30: 34 2c 20 4c 50 53 48 41 52 45 5f 49 4e 46 4f 5f 4, LPSHARE_INFO_
0c40: 31 30 30 34 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 1004;....struct
0c50: 53 48 41 52 45 5f 49 4e 46 4f 5f 31 30 30 36 20 SHARE_INFO_1006
0c60: 7b 0d 0a 09 44 57 4f 52 44 20 73 68 69 31 30 30 {...DWORD shi100
0c70: 36 5f 6d 61 78 5f 75 73 65 73 3b 0d 0a 7d 0d 0a 6_max_uses;..}..
0c80: 61 6c 69 61 73 20 53 48 41 52 45 5f 49 4e 46 4f alias SHARE_INFO
0c90: 5f 31 30 30 36 2a 20 50 53 48 41 52 45 5f 49 4e _1006* PSHARE_IN
0ca0: 46 4f 5f 31 30 30 36 2c 20 4c 50 53 48 41 52 45 FO_1006, LPSHARE
0cb0: 5f 49 4e 46 4f 5f 31 30 30 36 3b 0d 0a 0d 0a 73 _INFO_1006;....s
0cc0: 74 72 75 63 74 20 53 48 41 52 45 5f 49 4e 46 4f truct SHARE_INFO
0cd0: 5f 31 35 30 31 20 7b 0d 0a 09 44 57 4f 52 44 20 _1501 {...DWORD
0ce0: 73 68 69 31 35 30 31 5f 72 65 73 65 72 76 65 64 shi1501_reserved
0cf0: 3b 0d 0a 09 50 53 45 43 55 52 49 54 59 5f 44 45 ;...PSECURITY_DE
0d00: 53 43 52 49 50 54 4f 52 20 73 68 69 31 35 30 31 SCRIPTOR shi1501
0d10: 5f 73 65 63 75 72 69 74 79 5f 64 65 73 63 72 69 _security_descri
0d20: 70 74 6f 72 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 ptor;..}..alias
0d30: 53 48 41 52 45 5f 49 4e 46 4f 5f 31 35 30 31 2a SHARE_INFO_1501*
0d40: 20 50 53 48 41 52 45 5f 49 4e 46 4f 5f 31 35 30 PSHARE_INFO_150
0d50: 31 2c 20 4c 50 53 48 41 52 45 5f 49 4e 46 4f 5f 1, LPSHARE_INFO_
0d60: 31 35 30 31 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 1501;....struct
0d70: 53 45 53 53 49 4f 4e 5f 49 4e 46 4f 5f 30 20 7b SESSION_INFO_0 {
0d80: 0d 0a 09 4c 50 57 53 54 52 20 73 65 73 69 30 5f ...LPWSTR sesi0_
0d90: 63 6e 61 6d 65 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 cname;..}..alias
0da0: 20 53 45 53 53 49 4f 4e 5f 49 4e 46 4f 5f 30 2a SESSION_INFO_0*
0db0: 20 50 53 45 53 53 49 4f 4e 5f 49 4e 46 4f 5f 30 PSESSION_INFO_0
0dc0: 2c 20 4c 50 53 45 53 53 49 4f 4e 5f 49 4e 46 4f , LPSESSION_INFO
0dd0: 5f 30 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 53 45 _0;....struct SE
0de0: 53 53 49 4f 4e 5f 49 4e 46 4f 5f 31 20 7b 0d 0a SSION_INFO_1 {..
0df0: 09 4c 50 54 53 54 52 20 73 65 73 69 31 5f 63 6e .LPTSTR sesi1_cn
0e00: 61 6d 65 3b 0d 0a 09 4c 50 54 53 54 52 20 73 65 ame;...LPTSTR se
0e10: 73 69 31 5f 75 73 65 72 6e 61 6d 65 3b 0d 0a 09 si1_username;...
0e20: 44 57 4f 52 44 20 73 65 73 69 31 5f 6e 75 6d 5f DWORD sesi1_num_
0e30: 6f 70 65 6e 73 3b 0d 0a 09 44 57 4f 52 44 20 73 opens;...DWORD s
0e40: 65 73 69 31 5f 74 69 6d 65 3b 0d 0a 09 44 57 4f esi1_time;...DWO
0e50: 52 44 20 73 65 73 69 31 5f 69 64 6c 65 5f 74 69 RD sesi1_idle_ti
0e60: 6d 65 3b 0d 0a 09 44 57 4f 52 44 20 73 65 73 69 me;...DWORD sesi
0e70: 31 5f 75 73 65 72 5f 66 6c 61 67 73 3b 0d 0a 7d 1_user_flags;..}
0e80: 0d 0a 61 6c 69 61 73 20 53 45 53 53 49 4f 4e 5f ..alias SESSION_
0e90: 49 4e 46 4f 5f 31 2a 20 50 53 45 53 53 49 4f 4e INFO_1* PSESSION
0ea0: 5f 49 4e 46 4f 5f 31 2c 20 4c 50 53 45 53 53 49 _INFO_1, LPSESSI
0eb0: 4f 4e 5f 49 4e 46 4f 5f 31 3b 0d 0a 0d 0a 73 74 ON_INFO_1;....st
0ec0: 72 75 63 74 20 53 45 53 53 49 4f 4e 5f 49 4e 46 ruct SESSION_INF
0ed0: 4f 5f 32 20 7b 0d 0a 09 4c 50 54 53 54 52 20 73 O_2 {...LPTSTR s
0ee0: 65 73 69 32 5f 63 6e 61 6d 65 3b 0d 0a 09 4c 50 esi2_cname;...LP
0ef0: 54 53 54 52 20 73 65 73 69 32 5f 75 73 65 72 6e TSTR sesi2_usern
0f00: 61 6d 65 3b 0d 0a 09 44 57 4f 52 44 20 73 65 73 ame;...DWORD ses
0f10: 69 32 5f 6e 75 6d 5f 6f 70 65 6e 73 3b 0d 0a 09 i2_num_opens;...
0f20: 44 57 4f 52 44 20 73 65 73 69 32 5f 74 69 6d 65 DWORD sesi2_time
0f30: 3b 0d 0a 09 44 57 4f 52 44 20 73 65 73 69 32 5f ;...DWORD sesi2_
0f40: 69 64 6c 65 5f 74 69 6d 65 3b 0d 0a 09 44 57 4f idle_time;...DWO
0f50: 52 44 20 73 65 73 69 32 5f 75 73 65 72 5f 66 6c RD sesi2_user_fl
0f60: 61 67 73 3b 0d 0a 09 4c 50 57 53 54 52 20 73 65 ags;...LPWSTR se
0f70: 73 69 32 5f 63 6c 74 79 70 65 5f 6e 61 6d 65 3b si2_cltype_name;
0f80: 0d 0a 7d 0d 0a 61 6c 69 61 73 20 53 45 53 53 49 ..}..alias SESSI
0f90: 4f 4e 5f 49 4e 46 4f 5f 32 2a 20 50 53 45 53 53 ON_INFO_2* PSESS
0fa0: 49 4f 4e 5f 49 4e 46 4f 5f 32 2c 20 4c 50 53 45 ION_INFO_2, LPSE
0fb0: 53 53 49 4f 4e 5f 49 4e 46 4f 5f 32 3b 0d 0a 0d SSION_INFO_2;...
0fc0: 0a 73 74 72 75 63 74 20 53 45 53 53 49 4f 4e 5f .struct SESSION_
0fd0: 49 4e 46 4f 5f 31 30 20 7b 0d 0a 09 4c 50 57 53 INFO_10 {...LPWS
0fe0: 54 52 20 73 65 73 69 31 30 5f 63 6e 61 6d 65 3b TR sesi10_cname;
0ff0: 0d 0a 09 4c 50 57 53 54 52 20 73 65 73 69 31 30 ...LPWSTR sesi10
1000: 5f 75 73 65 72 6e 61 6d 65 3b 0d 0a 09 44 57 4f _username;...DWO
1010: 52 44 20 73 65 73 69 31 30 5f 74 69 6d 65 3b 0d RD sesi10_time;.
1020: 0a 09 44 57 4f 52 44 20 73 65 73 69 31 30 5f 69 ..DWORD sesi10_i
1030: 64 6c 65 5f 74 69 6d 65 3b 0d 0a 7d 0d 0a 61 6c dle_time;..}..al
1040: 69 61 73 20 53 45 53 53 49 4f 4e 5f 49 4e 46 4f ias SESSION_INFO
1050: 5f 31 30 2a 20 50 53 45 53 53 49 4f 4e 5f 49 4e _10* PSESSION_IN
1060: 46 4f 5f 31 30 2c 20 4c 50 53 45 53 53 49 4f 4e FO_10, LPSESSION
1070: 5f 49 4e 46 4f 5f 31 30 3b 0d 0a 0d 0a 73 74 72 _INFO_10;....str
1080: 75 63 74 20 53 45 53 53 49 4f 4e 5f 49 4e 46 4f uct SESSION_INFO
1090: 5f 35 30 32 20 7b 0d 0a 09 4c 50 57 53 54 52 20 _502 {...LPWSTR
10a0: 73 65 73 69 35 30 32 5f 63 6e 61 6d 65 3b 0d 0a sesi502_cname;..
10b0: 09 4c 50 57 53 54 52 20 73 65 73 69 35 30 32 5f .LPWSTR sesi502_
10c0: 75 73 65 72 6e 61 6d 65 3b 0d 0a 09 44 57 4f 52 username;...DWOR
10d0: 44 20 73 65 73 69 35 30 32 5f 6e 75 6d 5f 6f 70 D sesi502_num_op
10e0: 65 6e 73 3b 0d 0a 09 44 57 4f 52 44 20 73 65 73 ens;...DWORD ses
10f0: 69 35 30 32 5f 74 69 6d 65 3b 0d 0a 09 44 57 4f i502_time;...DWO
1100: 52 44 20 73 65 73 69 35 30 32 5f 69 64 6c 65 5f RD sesi502_idle_
1110: 74 69 6d 65 3b 0d 0a 09 44 57 4f 52 44 20 73 65 time;...DWORD se
1120: 73 69 35 30 32 5f 75 73 65 72 5f 66 6c 61 67 73 si502_user_flags
1130: 3b 0d 0a 09 4c 50 57 53 54 52 20 73 65 73 69 35 ;...LPWSTR sesi5
1140: 30 32 5f 63 6c 74 79 70 65 5f 6e 61 6d 65 3b 0d 02_cltype_name;.
1150: 0a 09 4c 50 57 53 54 52 20 73 65 73 69 35 30 32 ..LPWSTR sesi502
1160: 5f 74 72 61 6e 73 70 6f 72 74 3b 0d 0a 7d 0d 0a _transport;..}..
1170: 61 6c 69 61 73 20 53 45 53 53 49 4f 4e 5f 49 4e alias SESSION_IN
1180: 46 4f 5f 35 30 32 2a 20 50 53 45 53 53 49 4f 4e FO_502* PSESSION
1190: 5f 49 4e 46 4f 5f 35 30 32 2c 20 4c 50 53 45 53 _INFO_502, LPSES
11a0: 53 49 4f 4e 5f 49 4e 46 4f 5f 35 30 32 3b 0d 0a SION_INFO_502;..
11b0: 0d 0a 73 74 72 75 63 74 20 43 4f 4e 4e 45 43 54 ..struct CONNECT
11c0: 49 4f 4e 5f 49 4e 46 4f 5f 30 20 7b 0d 0a 09 44 ION_INFO_0 {...D
11d0: 57 4f 52 44 20 63 6f 6e 69 30 5f 69 64 3b 0d 0a WORD coni0_id;..
11e0: 7d 0d 0a 61 6c 69 61 73 20 43 4f 4e 4e 45 43 54 }..alias CONNECT
11f0: 49 4f 4e 5f 49 4e 46 4f 5f 30 2a 20 50 43 4f 4e ION_INFO_0* PCON
1200: 4e 45 43 54 49 4f 4e 5f 49 4e 46 4f 5f 30 2c 20 NECTION_INFO_0,
1210: 4c 50 43 4f 4e 4e 45 43 54 49 4f 4e 5f 49 4e 46 LPCONNECTION_INF
1220: 4f 5f 30 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 43 O_0;....struct C
1230: 4f 4e 4e 45 43 54 49 4f 4e 5f 49 4e 46 4f 5f 31 ONNECTION_INFO_1
1240: 20 7b 0d 0a 09 44 57 4f 52 44 20 63 6f 6e 69 31 {...DWORD coni1
1250: 5f 69 64 3b 0d 0a 09 44 57 4f 52 44 20 63 6f 6e _id;...DWORD con
1260: 69 31 5f 74 79 70 65 3b 0d 0a 09 44 57 4f 52 44 i1_type;...DWORD
1270: 20 63 6f 6e 69 31 5f 6e 75 6d 5f 6f 70 65 6e 73 coni1_num_opens
1280: 3b 0d 0a 09 44 57 4f 52 44 20 63 6f 6e 69 31 5f ;...DWORD coni1_
1290: 6e 75 6d 5f 75 73 65 72 73 3b 0d 0a 09 44 57 4f num_users;...DWO
12a0: 52 44 20 63 6f 6e 69 31 5f 74 69 6d 65 3b 0d 0a RD coni1_time;..
12b0: 09 4c 50 57 53 54 52 20 63 6f 6e 69 31 5f 75 73 .LPWSTR coni1_us
12c0: 65 72 6e 61 6d 65 3b 0d 0a 09 4c 50 57 53 54 52 ername;...LPWSTR
12d0: 20 63 6f 6e 69 31 5f 6e 65 74 6e 61 6d 65 3b 0d coni1_netname;.
12e0: 0a 7d 0d 0a 61 6c 69 61 73 20 43 4f 4e 4e 45 43 .}..alias CONNEC
12f0: 54 49 4f 4e 5f 49 4e 46 4f 5f 31 2a 20 50 43 4f TION_INFO_1* PCO
1300: 4e 4e 45 43 54 49 4f 4e 5f 49 4e 46 4f 5f 31 2c NNECTION_INFO_1,
1310: 20 4c 50 43 4f 4e 4e 45 43 54 49 4f 4e 5f 49 4e LPCONNECTION_IN
1320: 46 4f 5f 31 3b 0d 0a 0d 0a 65 78 74 65 72 6e 20 FO_1;....extern
1330: 28 57 69 6e 64 6f 77 73 29 20 7b 0d 0a 4e 45 54 (Windows) {..NET
1340: 5f 41 50 49 5f 53 54 41 54 55 53 20 4e 65 74 53 _API_STATUS NetS
1350: 68 61 72 65 41 64 64 28 4c 50 57 53 54 52 2c 44 hareAdd(LPWSTR,D
1360: 57 4f 52 44 2c 50 42 59 54 45 2c 50 44 57 4f 52 WORD,PBYTE,PDWOR
1370: 44 29 3b 0d 0a 4e 45 54 5f 41 50 49 5f 53 54 41 D);..NET_API_STA
1380: 54 55 53 20 4e 65 74 53 68 61 72 65 45 6e 75 6d TUS NetShareEnum
1390: 28 4c 50 57 53 54 52 2c 44 57 4f 52 44 2c 50 42 (LPWSTR,DWORD,PB
13a0: 59 54 45 2a 2c 44 57 4f 52 44 2c 50 44 57 4f 52 YTE*,DWORD,PDWOR
13b0: 44 2c 50 44 57 4f 52 44 2c 50 44 57 4f 52 44 29 D,PDWORD,PDWORD)
13c0: 3b 0d 0a 4e 45 54 5f 41 50 49 5f 53 54 41 54 55 ;..NET_API_STATU
13d0: 53 20 4e 65 74 53 68 61 72 65 45 6e 75 6d 53 74 S NetShareEnumSt
13e0: 69 63 6b 79 28 4c 50 57 53 54 52 2c 44 57 4f 52 icky(LPWSTR,DWOR
13f0: 44 2c 50 42 59 54 45 2a 2c 44 57 4f 52 44 2c 50 D,PBYTE*,DWORD,P
1400: 44 57 4f 52 44 2c 50 44 57 4f 52 44 2c 50 44 57 DWORD,PDWORD,PDW
1410: 4f 52 44 20 72 65 73 75 6d 65 5f 68 61 6e 64 6c ORD resume_handl
1420: 65 29 3b 0d 0a 4e 45 54 5f 41 50 49 5f 53 54 41 e);..NET_API_STA
1430: 54 55 53 20 4e 65 74 53 68 61 72 65 47 65 74 49 TUS NetShareGetI
1440: 6e 66 6f 28 4c 50 57 53 54 52 2c 4c 50 57 53 54 nfo(LPWSTR,LPWST
1450: 52 2c 44 57 4f 52 44 2c 50 42 59 54 45 2a 29 3b R,DWORD,PBYTE*);
1460: 0d 0a 4e 45 54 5f 41 50 49 5f 53 54 41 54 55 53 ..NET_API_STATUS
1470: 20 4e 65 74 53 68 61 72 65 53 65 74 49 6e 66 6f NetShareSetInfo
1480: 28 4c 50 57 53 54 52 2c 4c 50 57 53 54 52 2c 44 (LPWSTR,LPWSTR,D
1490: 57 4f 52 44 2c 50 42 59 54 45 2c 50 44 57 4f 52 WORD,PBYTE,PDWOR
14a0: 44 29 3b 0d 0a 4e 45 54 5f 41 50 49 5f 53 54 41 D);..NET_API_STA
14b0: 54 55 53 20 4e 65 74 53 68 61 72 65 44 65 6c 28 TUS NetShareDel(
14c0: 4c 50 57 53 54 52 2c 4c 50 57 53 54 52 2c 44 57 LPWSTR,LPWSTR,DW
14d0: 4f 52 44 29 3b 0d 0a 4e 45 54 5f 41 50 49 5f 53 ORD);..NET_API_S
14e0: 54 41 54 55 53 20 4e 65 74 53 68 61 72 65 44 65 TATUS NetShareDe
14f0: 6c 53 74 69 63 6b 79 28 4c 50 57 53 54 52 2c 4c lSticky(LPWSTR,L
1500: 50 57 53 54 52 2c 44 57 4f 52 44 29 3b 0d 0a 4e PWSTR,DWORD);..N
1510: 45 54 5f 41 50 49 5f 53 54 41 54 55 53 20 4e 65 ET_API_STATUS Ne
1520: 74 53 68 61 72 65 43 68 65 63 6b 28 4c 50 57 53 tShareCheck(LPWS
1530: 54 52 2c 4c 50 57 53 54 52 2c 50 44 57 4f 52 44 TR,LPWSTR,PDWORD
1540: 29 3b 0d 0a 4e 45 54 5f 41 50 49 5f 53 54 41 54 );..NET_API_STAT
1550: 55 53 20 4e 65 74 53 65 73 73 69 6f 6e 45 6e 75 US NetSessionEnu
1560: 6d 28 4c 50 57 53 54 52 2c 4c 50 57 53 54 52 2c m(LPWSTR,LPWSTR,
1570: 4c 50 57 53 54 52 2c 44 57 4f 52 44 2c 50 42 59 LPWSTR,DWORD,PBY
1580: 54 45 2a 2c 44 57 4f 52 44 2c 50 44 57 4f 52 44 TE*,DWORD,PDWORD
1590: 2c 50 44 57 4f 52 44 2c 50 44 57 4f 52 44 29 3b ,PDWORD,PDWORD);
15a0: 0d 0a 4e 45 54 5f 41 50 49 5f 53 54 41 54 55 53 ..NET_API_STATUS
15b0: 20 4e 65 74 53 65 73 73 69 6f 6e 44 65 6c 28 4c NetSessionDel(L
15c0: 50 57 53 54 52 2c 4c 50 57 53 54 52 2c 4c 50 57 PWSTR,LPWSTR,LPW
15d0: 53 54 52 29 3b 0d 0a 4e 45 54 5f 41 50 49 5f 53 STR);..NET_API_S
15e0: 54 41 54 55 53 20 4e 65 74 53 65 73 73 69 6f 6e TATUS NetSession
15f0: 47 65 74 49 6e 66 6f 28 4c 50 57 53 54 52 2c 4c GetInfo(LPWSTR,L
1600: 50 57 53 54 52 2c 4c 50 57 53 54 52 2c 44 57 4f PWSTR,LPWSTR,DWO
1610: 52 44 2c 50 42 59 54 45 2a 29 3b 0d 0a 4e 45 54 RD,PBYTE*);..NET
1620: 5f 41 50 49 5f 53 54 41 54 55 53 20 4e 65 74 43 _API_STATUS NetC
1630: 6f 6e 6e 65 63 74 69 6f 6e 45 6e 75 6d 28 4c 50 onnectionEnum(LP
1640: 57 53 54 52 2c 4c 50 57 53 54 52 2c 44 57 4f 52 WSTR,LPWSTR,DWOR
1650: 44 2c 50 42 59 54 45 2a 2c 44 57 4f 52 44 2c 50 D,PBYTE*,DWORD,P
1660: 44 57 4f 52 44 2c 50 44 57 4f 52 44 2c 50 44 57 DWORD,PDWORD,PDW
1670: 4f 52 44 29 3b 0d 0a 4e 45 54 5f 41 50 49 5f 53 ORD);..NET_API_S
1680: 54 41 54 55 53 20 4e 65 74 46 69 6c 65 43 6c 6f TATUS NetFileClo
1690: 73 65 28 4c 50 57 53 54 52 2c 44 57 4f 52 44 29 se(LPWSTR,DWORD)
16a0: 3b 0d 0a 4e 45 54 5f 41 50 49 5f 53 54 41 54 55 ;..NET_API_STATU
16b0: 53 20 4e 65 74 46 69 6c 65 45 6e 75 6d 28 4c 50 S NetFileEnum(LP
16c0: 57 53 54 52 2c 4c 50 57 53 54 52 2c 4c 50 57 53 WSTR,LPWSTR,LPWS
16d0: 54 52 2c 44 57 4f 52 44 2c 50 42 59 54 45 2a 2c TR,DWORD,PBYTE*,
16e0: 44 57 4f 52 44 2c 50 44 57 4f 52 44 2c 50 44 57 DWORD,PDWORD,PDW
16f0: 4f 52 44 2c 50 44 57 4f 52 44 29 3b 0d 0a 4e 45 ORD,PDWORD);..NE
1700: 54 5f 41 50 49 5f 53 54 41 54 55 53 20 4e 65 74 T_API_STATUS Net
1710: 46 69 6c 65 47 65 74 49 6e 66 6f 28 4c 50 57 53 FileGetInfo(LPWS
1720: 54 52 2c 44 57 4f 52 44 2c 44 57 4f 52 44 2c 50 TR,DWORD,DWORD,P
1730: 42 59 54 45 2a 29 3b 0d 0a 7d BYTE*);..}