Artifact 9ec7c9fbaf59e3d67d83fe6bf0d6c768f363ffa1:
- File
src/win32/lmremutl.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 72 65 6d lmrem
0070: 75 74 6c 2e 64 20 20 20 20 20 20 20 20 20 20 20 utl.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 72 65 6d 75 74 6c 3b 0d 0a 70 72 61 67 6d lmremutl;..pragm
02c0: 61 28 6c 69 62 2c 20 22 6e 65 74 61 70 69 33 32 a(lib, "netapi32
02d0: 22 29 3b 0d 0a 0d 0a 2f 2f 20 44 20 43 6f 6e 76 ");....// D Conv
02e0: 65 72 73 69 6f 6e 20 4e 6f 74 65 3a 20 44 45 53 ersion Note: DES
02f0: 43 5f 43 48 41 52 20 69 73 20 64 65 66 69 6e 65 C_CHAR is define
0300: 64 20 61 73 20 54 43 48 41 52 2e 0d 0a 0d 0a 70 d as TCHAR.....p
0310: 72 69 76 61 74 65 20 69 6d 70 6f 72 74 20 77 69 rivate import wi
0320: 6e 33 32 2e 6c 6d 63 6f 6e 73 2c 20 77 69 6e 33 n32.lmcons, win3
0330: 32 2e 77 69 6e 64 65 66 3b 0d 0a 0d 0a 63 6f 6e 2.windef;....con
0340: 73 74 20 53 55 50 50 4f 52 54 53 5f 52 45 4d 4f st SUPPORTS_REMO
0350: 54 45 5f 41 44 4d 49 4e 5f 50 52 4f 54 4f 43 4f TE_ADMIN_PROTOCO
0360: 4c 20 3d 20 20 32 3b 0d 0a 63 6f 6e 73 74 20 53 L = 2;..const S
0370: 55 50 50 4f 52 54 53 5f 52 50 43 20 20 20 20 20 UPPORTS_RPC
0380: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 =
0390: 20 34 3b 0d 0a 63 6f 6e 73 74 20 53 55 50 50 4f 4;..const SUPPO
03a0: 52 54 53 5f 53 41 4d 5f 50 52 4f 54 4f 43 4f 4c RTS_SAM_PROTOCOL
03b0: 20 20 20 20 20 20 20 20 20 20 3d 20 20 38 3b 0d = 8;.
03c0: 0a 63 6f 6e 73 74 20 53 55 50 50 4f 52 54 53 5f .const SUPPORTS_
03d0: 55 4e 49 43 4f 44 45 20 20 20 20 20 20 20 20 20 UNICODE
03e0: 20 20 20 20 20 20 3d 20 31 36 3b 0d 0a 63 6f 6e = 16;..con
03f0: 73 74 20 53 55 50 50 4f 52 54 53 5f 4c 4f 43 41 st SUPPORTS_LOCA
0400: 4c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 L
0410: 20 20 3d 20 33 32 3b 0d 0a 63 6f 6e 73 74 20 53 = 32;..const S
0420: 55 50 50 4f 52 54 53 5f 41 4e 59 20 20 20 20 20 UPPORTS_ANY
0430: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 =
0440: 30 78 46 46 46 46 46 46 46 46 3b 0d 0a 0d 0a 63 0xFFFFFFFF;....c
0450: 6f 6e 73 74 20 4e 4f 5f 50 45 52 4d 49 53 53 49 onst NO_PERMISSI
0460: 4f 4e 5f 52 45 51 55 49 52 45 44 20 3d 20 31 3b ON_REQUIRED = 1;
0470: 0d 0a 63 6f 6e 73 74 20 41 4c 4c 4f 43 41 54 45 ..const ALLOCATE
0480: 5f 52 45 53 50 4f 4e 53 45 20 20 20 20 20 20 3d _RESPONSE =
0490: 20 32 3b 0d 0a 63 6f 6e 73 74 20 55 53 45 5f 53 2;..const USE_S
04a0: 50 45 43 49 46 49 43 5f 54 52 41 4e 53 50 4f 52 PECIFIC_TRANSPOR
04b0: 54 20 3d 20 30 78 38 30 30 30 30 30 30 30 3b 0d T = 0x80000000;.
04c0: 0a 0d 0a 2f 2f 5b 59 65 73 5d 20 23 69 66 6e 64 ...//[Yes] #ifnd
04d0: 65 66 20 44 45 53 43 5f 43 48 41 52 5f 55 4e 49 ef DESC_CHAR_UNI
04e0: 43 4f 44 45 0d 0a 2f 2f 61 6c 69 61 73 20 43 48 CODE..//alias CH
04f0: 41 52 20 44 45 53 43 5f 43 48 41 52 3b 0d 0a 2f AR DESC_CHAR;../
0500: 2f 7d 20 65 6c 73 65 20 7b 0d 0a 2f 2f 5b 4e 6f /} else {..//[No
0510: 5d 20 23 65 6c 73 65 0d 0a 2f 2f 5b 4e 6f 5d 20 ] #else..//[No]
0520: 74 79 70 65 64 65 66 20 57 43 48 41 52 20 44 45 typedef WCHAR DE
0530: 53 43 5f 43 48 41 52 3b 0d 0a 2f 2f 5b 4e 6f 5d SC_CHAR;..//[No]
0540: 20 23 65 6e 64 69 66 0d 0a 2f 2f 20 46 49 58 4d #endif..// FIXM
0550: 45 20 28 44 29 3a 20 49 73 20 74 68 69 73 20 4f E (D): Is this O
0560: 4b 3f 0d 0a 61 6c 69 61 73 20 54 43 48 41 52 20 K?..alias TCHAR
0570: 44 45 53 43 5f 43 48 41 52 3b 0d 0a 0d 0a 61 6c DESC_CHAR;....al
0580: 69 61 73 20 44 45 53 43 5f 43 48 41 52 2a 20 4c ias DESC_CHAR* L
0590: 50 44 45 53 43 3b 0d 0a 0d 0a 73 74 72 75 63 74 PDESC;....struct
05a0: 20 54 49 4d 45 5f 4f 46 5f 44 41 59 5f 49 4e 46 TIME_OF_DAY_INF
05b0: 4f 20 7b 0d 0a 09 44 57 4f 52 44 20 74 6f 64 5f O {...DWORD tod_
05c0: 65 6c 61 70 73 65 64 74 3b 0d 0a 09 44 57 4f 52 elapsedt;...DWOR
05d0: 44 20 74 6f 64 5f 6d 73 65 63 73 3b 0d 0a 09 44 D tod_msecs;...D
05e0: 57 4f 52 44 20 74 6f 64 5f 68 6f 75 72 73 3b 0d WORD tod_hours;.
05f0: 0a 09 44 57 4f 52 44 20 74 6f 64 5f 6d 69 6e 73 ..DWORD tod_mins
0600: 3b 0d 0a 09 44 57 4f 52 44 20 74 6f 64 5f 73 65 ;...DWORD tod_se
0610: 63 73 3b 0d 0a 09 44 57 4f 52 44 20 74 6f 64 5f cs;...DWORD tod_
0620: 68 75 6e 64 73 3b 0d 0a 09 4c 4f 4e 47 20 20 74 hunds;...LONG t
0630: 6f 64 5f 74 69 6d 65 7a 6f 6e 65 3b 0d 0a 09 44 od_timezone;...D
0640: 57 4f 52 44 20 74 6f 64 5f 74 69 6e 74 65 72 76 WORD tod_tinterv
0650: 61 6c 3b 0d 0a 09 44 57 4f 52 44 20 74 6f 64 5f al;...DWORD tod_
0660: 64 61 79 3b 0d 0a 09 44 57 4f 52 44 20 74 6f 64 day;...DWORD tod
0670: 5f 6d 6f 6e 74 68 3b 0d 0a 09 44 57 4f 52 44 20 _month;...DWORD
0680: 74 6f 64 5f 79 65 61 72 3b 0d 0a 09 44 57 4f 52 tod_year;...DWOR
0690: 44 20 74 6f 64 5f 77 65 65 6b 64 61 79 3b 0d 0a D tod_weekday;..
06a0: 7d 0d 0a 61 6c 69 61 73 20 54 49 4d 45 5f 4f 46 }..alias TIME_OF
06b0: 5f 44 41 59 5f 49 4e 46 4f 2a 20 50 54 49 4d 45 _DAY_INFO* PTIME
06c0: 5f 4f 46 5f 44 41 59 5f 49 4e 46 4f 2c 20 4c 50 _OF_DAY_INFO, LP
06d0: 54 49 4d 45 5f 4f 46 5f 44 41 59 5f 49 4e 46 4f TIME_OF_DAY_INFO
06e0: 3b 0d 0a 0d 0a 65 78 74 65 72 6e 20 28 57 69 6e ;....extern (Win
06f0: 64 6f 77 73 29 20 7b 0d 0a 09 4e 45 54 5f 41 50 dows) {...NET_AP
0700: 49 5f 53 54 41 54 55 53 20 4e 65 74 52 65 6d 6f I_STATUS NetRemo
0710: 74 65 54 4f 44 28 4c 50 43 57 53 54 52 2c 20 50 teTOD(LPCWSTR, P
0720: 42 59 54 45 2a 29 3b 0d 0a 09 4e 45 54 5f 41 50 BYTE*);...NET_AP
0730: 49 5f 53 54 41 54 55 53 20 4e 65 74 52 65 6d 6f I_STATUS NetRemo
0740: 74 65 43 6f 6d 70 75 74 65 72 53 75 70 70 6f 72 teComputerSuppor
0750: 74 73 28 4c 50 43 57 53 54 52 2c 20 44 57 4f 52 ts(LPCWSTR, DWOR
0760: 44 2c 20 50 44 57 4f 52 44 29 3b 0d 0a 09 4e 45 D, PDWORD);...NE
0770: 54 5f 41 50 49 5f 53 54 41 54 55 53 20 52 78 52 T_API_STATUS RxR
0780: 65 6d 6f 74 65 41 70 69 28 44 57 4f 52 44 2c 20 emoteApi(DWORD,
0790: 4c 50 43 57 53 54 52 2c 20 4c 50 44 45 53 43 2c LPCWSTR, LPDESC,
07a0: 20 4c 50 44 45 53 43 2c 20 4c 50 44 45 53 43 2c LPDESC, LPDESC,
07b0: 0d 0a 09 20 20 4c 50 44 45 53 43 2c 20 4c 50 44 ... LPDESC, LPD
07c0: 45 53 43 2c 20 4c 50 44 45 53 43 2c 20 4c 50 44 ESC, LPDESC, LPD
07d0: 45 53 43 2c 20 44 57 4f 52 44 2c 20 2e 2e 2e 29 ESC, DWORD, ...)
07e0: 3b 0d 0a 7d 0d 0a ;..}..