Artifact 00c58add0720686e7b5388ea366939a8dbe99123:
- File
src/win32/lmuse.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 20 6c 6d 75 73 lmus 0070: 65 2e 64 20 20 20 20 20 20 20 20 20 20 20 20 20 e.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 75 73 65 3b 0d 0a 70 72 61 67 6d 61 28 6c lmuse;..pragma(l 02c0: 69 62 2c 20 22 6e 65 74 61 70 69 33 32 22 29 3b ib, "netapi32"); 02d0: 0d 0a 0d 0a 69 6d 70 6f 72 74 20 77 69 6e 33 32 ....import win32 02e0: 2e 6c 6d 75 73 65 66 6c 67 3b 0d 0a 70 72 69 76 .lmuseflg;..priv 02f0: 61 74 65 20 69 6d 70 6f 72 74 20 77 69 6e 33 32 ate import win32 0300: 2e 6c 6d 63 6f 6e 73 2c 20 77 69 6e 33 32 2e 77 .lmcons, win32.w 0310: 69 6e 64 65 66 3b 0d 0a 0d 0a 65 6e 75 6d 20 7b indef;....enum { 0320: 0d 0a 09 55 53 45 5f 4c 4f 43 41 4c 5f 50 41 52 ...USE_LOCAL_PAR 0330: 4d 4e 55 4d 20 3d 20 31 2c 0d 0a 09 55 53 45 5f MNUM = 1,...USE_ 0340: 52 45 4d 4f 54 45 5f 50 41 52 4d 4e 55 4d 2c 0d REMOTE_PARMNUM,. 0350: 0a 09 55 53 45 5f 50 41 53 53 57 4f 52 44 5f 50 ..USE_PASSWORD_P 0360: 41 52 4d 4e 55 4d 2c 0d 0a 09 55 53 45 5f 41 53 ARMNUM,...USE_AS 0370: 47 54 59 50 45 5f 50 41 52 4d 4e 55 4d 2c 0d 0a GTYPE_PARMNUM,.. 0380: 09 55 53 45 5f 55 53 45 52 4e 41 4d 45 5f 50 41 .USE_USERNAME_PA 0390: 52 4d 4e 55 4d 2c 0d 0a 09 55 53 45 5f 44 4f 4d RMNUM,...USE_DOM 03a0: 41 49 4e 4e 41 4d 45 5f 50 41 52 4d 4e 55 4d 0d AINNAME_PARMNUM. 03b0: 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 55 .}....enum {...U 03c0: 53 45 5f 4f 4b 2c 0d 0a 09 55 53 45 5f 50 41 55 SE_OK,...USE_PAU 03d0: 53 45 44 2c 0d 0a 09 55 53 45 5f 53 45 53 53 4c SED,...USE_SESSL 03e0: 4f 53 54 2c 0d 0a 09 55 53 45 5f 44 49 53 43 4f OST,...USE_DISCO 03f0: 4e 4e 20 3d 20 55 53 45 5f 53 45 53 53 4c 4f 53 NN = USE_SESSLOS 0400: 54 2c 0d 0a 09 55 53 45 5f 4e 45 54 45 52 52 2c T,...USE_NETERR, 0410: 0d 0a 09 55 53 45 5f 43 4f 4e 4e 2c 0d 0a 09 55 ...USE_CONN,...U 0420: 53 45 5f 52 45 43 4f 4e 4e 0d 0a 7d 0d 0a 0d 0a SE_RECONN..}.... 0430: 63 6f 6e 73 74 20 44 57 4f 52 44 20 55 53 45 5f const DWORD USE_ 0440: 57 49 4c 44 43 41 52 44 20 3d 20 2d 31 3b 0d 0a WILDCARD = -1;.. 0450: 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 55 53 45 5f 44 ..enum {...USE_D 0460: 49 53 4b 44 45 56 2c 0d 0a 09 55 53 45 5f 53 50 ISKDEV,...USE_SP 0470: 4f 4f 4c 44 45 56 2c 0d 0a 09 55 53 45 5f 43 48 OOLDEV,...USE_CH 0480: 41 52 44 45 56 2c 0d 0a 09 55 53 45 5f 49 50 43 ARDEV,...USE_IPC 0490: 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 63 74 20 55 53 ..}....struct US 04a0: 45 5f 49 4e 46 4f 5f 30 20 7b 0d 0a 09 4c 50 57 E_INFO_0 {...LPW 04b0: 53 54 52 20 75 69 30 5f 6c 6f 63 61 6c 3b 0d 0a STR ui0_local;.. 04c0: 09 4c 50 57 53 54 52 20 75 69 30 5f 72 65 6d 6f .LPWSTR ui0_remo 04d0: 74 65 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 55 53 te;..}..alias US 04e0: 45 5f 49 4e 46 4f 5f 30 2a 20 50 55 53 45 5f 49 E_INFO_0* PUSE_I 04f0: 4e 46 4f 5f 30 2c 20 4c 50 55 53 45 5f 49 4e 46 NFO_0, LPUSE_INF 0500: 4f 5f 30 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 55 O_0;....struct U 0510: 53 45 5f 49 4e 46 4f 5f 31 20 7b 0d 0a 09 4c 50 SE_INFO_1 {...LP 0520: 57 53 54 52 20 75 69 31 5f 6c 6f 63 61 6c 3b 0d WSTR ui1_local;. 0530: 0a 09 4c 50 57 53 54 52 20 75 69 31 5f 72 65 6d ..LPWSTR ui1_rem 0540: 6f 74 65 3b 0d 0a 09 4c 50 57 53 54 52 20 75 69 ote;...LPWSTR ui 0550: 31 5f 70 61 73 73 77 6f 72 64 3b 0d 0a 09 44 57 1_password;...DW 0560: 4f 52 44 20 75 69 31 5f 73 74 61 74 75 73 3b 0d ORD ui1_status;. 0570: 0a 09 44 57 4f 52 44 20 75 69 31 5f 61 73 67 5f ..DWORD ui1_asg_ 0580: 74 79 70 65 3b 0d 0a 09 44 57 4f 52 44 20 75 69 type;...DWORD ui 0590: 31 5f 72 65 66 63 6f 75 6e 74 3b 0d 0a 09 44 57 1_refcount;...DW 05a0: 4f 52 44 20 75 69 31 5f 75 73 65 63 6f 75 6e 74 ORD ui1_usecount 05b0: 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 55 53 45 5f ;..}..alias USE_ 05c0: 49 4e 46 4f 5f 31 2a 20 50 55 53 45 5f 49 4e 46 INFO_1* PUSE_INF 05d0: 4f 5f 31 2c 20 4c 50 55 53 45 5f 49 4e 46 4f 5f O_1, LPUSE_INFO_ 05e0: 31 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 55 53 45 1;....struct USE 05f0: 5f 49 4e 46 4f 5f 32 20 7b 0d 0a 09 4c 50 57 53 _INFO_2 {...LPWS 0600: 54 52 20 75 69 32 5f 6c 6f 63 61 6c 3b 0d 0a 09 TR ui2_local;... 0610: 4c 50 57 53 54 52 20 75 69 32 5f 72 65 6d 6f 74 LPWSTR ui2_remot 0620: 65 3b 0d 0a 09 4c 50 57 53 54 52 20 75 69 32 5f e;...LPWSTR ui2_ 0630: 70 61 73 73 77 6f 72 64 3b 0d 0a 09 44 57 4f 52 password;...DWOR 0640: 44 20 75 69 32 5f 73 74 61 74 75 73 3b 0d 0a 09 D ui2_status;... 0650: 44 57 4f 52 44 20 75 69 32 5f 61 73 67 5f 74 79 DWORD ui2_asg_ty 0660: 70 65 3b 0d 0a 09 44 57 4f 52 44 20 75 69 32 5f pe;...DWORD ui2_ 0670: 72 65 66 63 6f 75 6e 74 3b 0d 0a 09 44 57 4f 52 refcount;...DWOR 0680: 44 20 75 69 32 5f 75 73 65 63 6f 75 6e 74 3b 0d D ui2_usecount;. 0690: 0a 09 4c 50 57 53 54 52 20 75 69 32 5f 75 73 65 ..LPWSTR ui2_use 06a0: 72 6e 61 6d 65 3b 0d 0a 09 4c 50 57 53 54 52 20 rname;...LPWSTR 06b0: 75 69 32 5f 64 6f 6d 61 69 6e 6e 61 6d 65 3b 0d ui2_domainname;. 06c0: 0a 7d 0d 0a 61 6c 69 61 73 20 55 53 45 5f 49 4e .}..alias USE_IN 06d0: 46 4f 5f 32 2a 20 50 55 53 45 5f 49 4e 46 4f 5f FO_2* PUSE_INFO_ 06e0: 32 2c 20 4c 50 55 53 45 5f 49 4e 46 4f 5f 32 3b 2, LPUSE_INFO_2; 06f0: 0d 0a 0d 0a 65 78 74 65 72 6e 20 28 57 69 6e 64 ....extern (Wind 0700: 6f 77 73 29 20 7b 0d 0a 09 4e 45 54 5f 41 50 49 ows) {...NET_API 0710: 5f 53 54 41 54 55 53 20 4e 65 74 55 73 65 41 64 _STATUS NetUseAd 0720: 64 28 4c 50 57 53 54 52 2c 20 44 57 4f 52 44 2c d(LPWSTR, DWORD, 0730: 20 50 42 59 54 45 2c 20 50 44 57 4f 52 44 29 3b PBYTE, PDWORD); 0740: 0d 0a 09 4e 45 54 5f 41 50 49 5f 53 54 41 54 55 ...NET_API_STATU 0750: 53 20 4e 65 74 55 73 65 44 65 6c 28 4c 50 57 53 S NetUseDel(LPWS 0760: 54 52 2c 20 4c 50 57 53 54 52 2c 20 44 57 4f 52 TR, LPWSTR, DWOR 0770: 44 29 3b 0d 0a 09 4e 45 54 5f 41 50 49 5f 53 54 D);...NET_API_ST 0780: 41 54 55 53 20 4e 65 74 55 73 65 45 6e 75 6d 28 ATUS NetUseEnum( 0790: 4c 50 57 53 54 52 2c 20 44 57 4f 52 44 2c 20 50 LPWSTR, DWORD, P 07a0: 42 59 54 45 2a 2c 20 44 57 4f 52 44 2c 20 50 44 BYTE*, DWORD, PD 07b0: 57 4f 52 44 2c 20 50 44 57 4f 52 44 2c 0d 0a 09 WORD, PDWORD,... 07c0: 20 20 50 44 57 4f 52 44 29 3b 0d 0a 09 4e 45 54 PDWORD);...NET 07d0: 5f 41 50 49 5f 53 54 41 54 55 53 20 4e 65 74 55 _API_STATUS NetU 07e0: 73 65 47 65 74 49 6e 66 6f 28 4c 50 57 53 54 52 seGetInfo(LPWSTR 07f0: 2c 20 4c 50 57 53 54 52 2c 20 44 57 4f 52 44 2c , LPWSTR, DWORD, 0800: 20 50 42 59 54 45 2a 29 3b 0d 0a 7d 0d 0a PBYTE*);..}..