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*);..}