Artifact fd0f86f97f2386d93bb91b0d849ee2044124fbfc:
- File
src/win32/lmcons.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 63 6f lmco
0070: 6e 73 2e 64 20 20 20 20 20 20 20 20 20 20 20 20 ns.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 63 6f 6e 73 3b 0d 0a 0d 0a 70 72 69 76 61 lmcons;....priva
02c0: 74 65 20 69 6d 70 6f 72 74 20 77 69 6e 33 32 2e te import win32.
02d0: 77 69 6e 64 65 66 3b 0d 0a 70 72 69 76 61 74 65 windef;..private
02e0: 20 69 6d 70 6f 72 74 20 77 69 6e 33 32 2e 6c 6d import win32.lm
02f0: 65 72 72 3b 20 2f 2f 20 66 6f 72 20 4e 45 52 52 err; // for NERR
0300: 5f 42 41 53 45 0d 0a 0d 0a 63 6f 6e 73 74 20 54 _BASE....const T
0310: 43 48 41 52 5b 5d 0d 0a 09 4d 45 53 53 41 47 45 CHAR[]...MESSAGE
0320: 5f 46 49 4c 45 4e 41 4d 45 20 3d 20 22 4e 45 54 _FILENAME = "NET
0330: 4d 53 47 22 2c 0d 0a 09 4f 53 32 4d 53 47 5f 46 MSG",...OS2MSG_F
0340: 49 4c 45 4e 41 4d 45 20 3d 20 22 42 41 53 45 22 ILENAME = "BASE"
0350: 2c 0d 0a 09 48 45 4c 50 5f 4d 53 47 5f 46 49 4c ,...HELP_MSG_FIL
0360: 45 4e 41 4d 45 20 3d 20 22 4e 45 54 48 22 3b 0d ENAME = "NETH";.
0370: 0a 0d 0a 61 6c 69 61 73 20 44 57 4f 52 44 20 4e ...alias DWORD N
0380: 45 54 5f 41 50 49 5f 53 54 41 54 55 53 2c 20 41 ET_API_STATUS, A
0390: 50 49 5f 52 45 54 5f 54 59 50 45 3b 0d 0a 0d 0a PI_RET_TYPE;....
03a0: 63 6f 6e 73 74 20 4d 49 4e 5f 4c 41 4e 4d 41 4e const MIN_LANMAN
03b0: 5f 4d 45 53 53 41 47 45 5f 49 44 20 3d 20 4e 45 _MESSAGE_ID = NE
03c0: 52 52 5f 42 41 53 45 3b 0d 0a 63 6f 6e 73 74 20 RR_BASE;..const
03d0: 4d 41 58 5f 4c 41 4e 4d 41 4e 5f 4d 45 53 53 41 MAX_LANMAN_MESSA
03e0: 47 45 5f 49 44 20 3d 20 35 37 39 39 3b 0d 0a 0d GE_ID = 5799;...
03f0: 0a 63 6f 6e 73 74 20 43 4e 4c 45 4e 20 20 20 20 .const CNLEN
0400: 20 20 20 20 3d 20 31 35 3b 20 2f 2a 20 61 6c 73 = 15; /* als
0410: 6f 20 69 6e 20 6e 64 64 65 61 70 69 2e 68 20 2a o in nddeapi.h *
0420: 2f 0d 0a 63 6f 6e 73 74 20 55 4e 43 4c 45 4e 20 /..const UNCLEN
0430: 20 20 20 20 20 20 3d 20 43 4e 4c 45 4e 20 2b 20 = CNLEN +
0440: 32 3b 0d 0a 0d 0a 63 6f 6e 73 74 20 44 4e 4c 45 2;....const DNLE
0450: 4e 20 20 20 20 20 20 20 20 3d 20 31 35 3b 0d 0a N = 15;..
0460: 63 6f 6e 73 74 20 4c 4d 32 30 5f 43 4e 4c 45 4e const LM20_CNLEN
0470: 20 20 20 3d 20 31 35 3b 0d 0a 63 6f 6e 73 74 20 = 15;..const
0480: 4c 4d 32 30 5f 44 4e 4c 45 4e 20 20 20 3d 20 31 LM20_DNLEN = 1
0490: 35 3b 0d 0a 63 6f 6e 73 74 20 4c 4d 32 30 5f 53 5;..const LM20_S
04a0: 4e 4c 45 4e 20 20 20 3d 20 31 35 3b 0d 0a 63 6f NLEN = 15;..co
04b0: 6e 73 74 20 4c 4d 32 30 5f 53 54 58 54 4c 45 4e nst LM20_STXTLEN
04c0: 20 3d 20 36 33 3b 0d 0a 63 6f 6e 73 74 20 4c 4d = 63;..const LM
04d0: 32 30 5f 55 4e 43 4c 45 4e 20 20 3d 20 4c 4d 32 20_UNCLEN = LM2
04e0: 30 5f 43 4e 4c 45 4e 20 2b 20 32 3b 0d 0a 63 6f 0_CNLEN + 2;..co
04f0: 6e 73 74 20 4c 4d 32 30 5f 4e 4e 4c 45 4e 20 20 nst LM20_NNLEN
0500: 20 3d 20 31 32 3b 0d 0a 63 6f 6e 73 74 20 4c 4d = 12;..const LM
0510: 32 30 5f 52 4d 4c 45 4e 20 20 20 3d 20 4c 4d 32 20_RMLEN = LM2
0520: 30 5f 55 4e 43 4c 45 4e 20 2b 20 31 20 2b 20 4c 0_UNCLEN + 1 + L
0530: 4d 32 30 5f 4e 4e 4c 45 4e 3b 0d 0a 63 6f 6e 73 M20_NNLEN;..cons
0540: 74 20 4e 4e 4c 45 4e 20 20 20 20 20 20 20 20 3d t NNLEN =
0550: 20 38 30 3b 0d 0a 63 6f 6e 73 74 20 52 4d 4c 45 80;..const RMLE
0560: 4e 20 20 20 20 20 20 20 20 3d 20 55 4e 43 4c 45 N = UNCLE
0570: 4e 20 2b 20 31 20 2b 20 4e 4e 4c 45 4e 3b 0d 0a N + 1 + NNLEN;..
0580: 63 6f 6e 73 74 20 53 4e 4c 45 4e 20 20 20 20 20 const SNLEN
0590: 20 20 20 3d 20 38 30 3b 0d 0a 63 6f 6e 73 74 20 = 80;..const
05a0: 53 54 58 54 4c 45 4e 20 20 20 20 20 20 3d 20 32 STXTLEN = 2
05b0: 35 36 3b 0d 0a 63 6f 6e 73 74 20 50 41 54 48 4c 56;..const PATHL
05c0: 45 4e 20 20 20 20 20 20 3d 20 32 35 36 3b 0d 0a EN = 256;..
05d0: 63 6f 6e 73 74 20 4c 4d 32 30 5f 50 41 54 48 4c const LM20_PATHL
05e0: 45 4e 20 3d 20 32 35 36 3b 0d 0a 63 6f 6e 73 74 EN = 256;..const
05f0: 20 44 45 56 4c 45 4e 20 20 20 20 20 20 20 3d 20 DEVLEN =
0600: 38 30 3b 0d 0a 63 6f 6e 73 74 20 4c 4d 32 30 5f 80;..const LM20_
0610: 44 45 56 4c 45 4e 20 20 3d 20 38 3b 0d 0a 63 6f DEVLEN = 8;..co
0620: 6e 73 74 20 45 56 4c 45 4e 20 20 20 20 20 20 20 nst EVLEN
0630: 20 3d 20 31 36 3b 0d 0a 63 6f 6e 73 74 20 55 4e = 16;..const UN
0640: 4c 45 4e 20 20 20 20 20 20 20 20 3d 20 32 35 36 LEN = 256
0650: 3b 0d 0a 63 6f 6e 73 74 20 4c 4d 32 30 5f 55 4e ;..const LM20_UN
0660: 4c 45 4e 20 20 20 3d 20 32 30 3b 0d 0a 63 6f 6e LEN = 20;..con
0670: 73 74 20 47 4e 4c 45 4e 20 20 20 20 20 20 20 20 st GNLEN
0680: 3d 20 55 4e 4c 45 4e 3b 0d 0a 63 6f 6e 73 74 20 = UNLEN;..const
0690: 4c 4d 32 30 5f 47 4e 4c 45 4e 20 20 20 3d 20 4c LM20_GNLEN = L
06a0: 4d 32 30 5f 55 4e 4c 45 4e 3b 0d 0a 63 6f 6e 73 M20_UNLEN;..cons
06b0: 74 20 50 57 4c 45 4e 20 20 20 20 20 20 20 20 3d t PWLEN =
06c0: 20 32 35 36 3b 0d 0a 63 6f 6e 73 74 20 4c 4d 32 256;..const LM2
06d0: 30 5f 50 57 4c 45 4e 20 20 20 3d 20 31 34 3b 0d 0_PWLEN = 14;.
06e0: 0a 63 6f 6e 73 74 20 53 48 50 57 4c 45 4e 20 20 .const SHPWLEN
06f0: 20 20 20 20 3d 20 38 3b 0d 0a 63 6f 6e 73 74 20 = 8;..const
0700: 43 4c 54 59 50 45 5f 4c 45 4e 20 20 20 3d 20 31 CLTYPE_LEN = 1
0710: 32 3b 0d 0a 63 6f 6e 73 74 20 51 4e 4c 45 4e 20 2;..const QNLEN
0720: 20 20 20 20 20 20 20 3d 20 4e 4e 4c 45 4e 3b 0d = NNLEN;.
0730: 0a 63 6f 6e 73 74 20 4c 4d 32 30 5f 51 4e 4c 45 .const LM20_QNLE
0740: 4e 20 20 20 3d 20 4c 4d 32 30 5f 4e 4e 4c 45 4e N = LM20_NNLEN
0750: 3b 0d 0a 0d 0a 63 6f 6e 73 74 20 4d 41 58 43 4f ;....const MAXCO
0760: 4d 4d 45 4e 54 53 5a 20 3d 20 32 35 36 3b 0d 0a MMENTSZ = 256;..
0770: 63 6f 6e 73 74 20 4c 4d 32 30 5f 4d 41 58 43 4f const LM20_MAXCO
0780: 4d 4d 45 4e 54 53 5a 20 3d 20 34 38 3b 0d 0a 63 MMENTSZ = 48;..c
0790: 6f 6e 73 74 20 41 4c 45 52 54 53 5a 20 20 20 20 onst ALERTSZ
07a0: 20 20 3d 20 31 32 38 3b 0d 0a 63 6f 6e 73 74 20 = 128;..const
07b0: 4d 41 58 44 45 56 45 4e 54 52 49 45 53 20 3d 20 MAXDEVENTRIES =
07c0: 33 32 3b 2f 2f 20 28 73 69 7a 65 6f 66 28 69 6e 32;// (sizeof(in
07d0: 74 29 2a 38 29 3b 0d 0a 63 6f 6e 73 74 20 4e 45 t)*8);..const NE
07e0: 54 42 49 4f 53 5f 4e 41 4d 45 5f 4c 45 4e 20 3d TBIOS_NAME_LEN =
07f0: 20 31 36 3b 0d 0a 63 6f 6e 73 74 20 44 57 4f 52 16;..const DWOR
0800: 44 20 4d 41 58 5f 50 52 45 46 45 52 52 45 44 5f D MAX_PREFERRED_
0810: 4c 45 4e 47 54 48 20 3d 20 2d 31 3b 0d 0a 63 6f LENGTH = -1;..co
0820: 6e 73 74 20 43 52 59 50 54 5f 4b 45 59 5f 4c 45 nst CRYPT_KEY_LE
0830: 4e 20 3d 20 37 3b 0d 0a 63 6f 6e 73 74 20 43 52 N = 7;..const CR
0840: 59 50 54 5f 54 58 54 5f 4c 45 4e 20 3d 20 38 3b YPT_TXT_LEN = 8;
0850: 0d 0a 63 6f 6e 73 74 20 45 4e 43 52 59 50 54 45 ..const ENCRYPTE
0860: 44 5f 50 57 4c 45 4e 20 3d 20 31 36 3b 0d 0a 63 D_PWLEN = 16;..c
0870: 6f 6e 73 74 20 53 45 53 53 49 4f 4e 5f 50 57 4c onst SESSION_PWL
0880: 45 4e 20 3d 20 32 34 3b 0d 0a 63 6f 6e 73 74 20 EN = 24;..const
0890: 53 45 53 53 49 4f 4e 5f 43 52 59 50 54 5f 4b 4c SESSION_CRYPT_KL
08a0: 45 4e 20 3d 20 32 31 3b 0d 0a 0d 0a 63 6f 6e 73 EN = 21;....cons
08b0: 74 20 50 41 52 4d 4e 55 4d 5f 41 4c 4c 20 3d 20 t PARMNUM_ALL =
08c0: 30 3b 0d 0a 63 6f 6e 73 74 20 44 57 4f 52 44 20 0;..const DWORD
08d0: 50 41 52 4d 5f 45 52 52 4f 52 5f 55 4e 4b 4e 4f PARM_ERROR_UNKNO
08e0: 57 4e 20 3d 20 2d 31 3b 0d 0a 63 6f 6e 73 74 20 WN = -1;..const
08f0: 50 41 52 4d 5f 45 52 52 4f 52 5f 4e 4f 4e 45 20 PARM_ERROR_NONE
0900: 3d 20 30 3b 0d 0a 63 6f 6e 73 74 20 50 41 52 4d = 0;..const PARM
0910: 4e 55 4d 5f 42 41 53 45 5f 49 4e 46 4f 4c 45 56 NUM_BASE_INFOLEV
0920: 45 4c 20 3d 20 31 30 30 30 3b 0d 0a 0d 0a 63 6f EL = 1000;....co
0930: 6e 73 74 20 50 4c 41 54 46 4f 52 4d 5f 49 44 5f nst PLATFORM_ID_
0940: 44 4f 53 20 3d 20 33 30 30 3b 0d 0a 63 6f 6e 73 DOS = 300;..cons
0950: 74 20 50 4c 41 54 46 4f 52 4d 5f 49 44 5f 4f 53 t PLATFORM_ID_OS
0960: 32 20 3d 20 34 30 30 3b 0d 0a 63 6f 6e 73 74 20 2 = 400;..const
0970: 50 4c 41 54 46 4f 52 4d 5f 49 44 5f 4e 54 20 20 PLATFORM_ID_NT
0980: 3d 20 35 30 30 3b 0d 0a 63 6f 6e 73 74 20 50 4c = 500;..const PL
0990: 41 54 46 4f 52 4d 5f 49 44 5f 4f 53 46 20 3d 20 ATFORM_ID_OSF =
09a0: 36 30 30 3b 0d 0a 63 6f 6e 73 74 20 50 4c 41 54 600;..const PLAT
09b0: 46 4f 52 4d 5f 49 44 5f 56 4d 53 20 3d 20 37 30 FORM_ID_VMS = 70
09c0: 30 3b 0d 0a 0d 0a 2f 2f 20 74 68 69 73 20 69 73 0;....// this is
09d0: 20 61 20 6e 65 77 20 74 79 70 65 64 65 66 20 69 a new typedef i
09e0: 6e 20 57 32 4b 2c 20 62 75 74 20 69 74 20 73 68 n W2K, but it sh
09f0: 6f 75 6c 64 20 62 65 20 68 61 72 6d 6c 65 73 73 ould be harmless
0a00: 20 66 6f 72 20 65 61 72 6c 69 65 72 20 57 69 6e for earlier Win
0a10: 64 6f 77 73 20 76 65 72 73 69 6f 6e 73 2e 0d 0a dows versions...
0a20: 76 65 72 73 69 6f 6e 20 28 55 6e 69 63 6f 64 65 version (Unicode
0a30: 29 20 7b 0d 0a 09 61 6c 69 61 73 20 4c 50 57 53 ) {...alias LPWS
0a40: 54 52 20 4c 4d 53 54 52 3b 0d 0a 09 61 6c 69 61 TR LMSTR;...alia
0a50: 73 20 4c 50 43 57 53 54 52 20 4c 4d 43 53 54 52 s LPCWSTR LMCSTR
0a60: 3b 0d 0a 7d 20 65 6c 73 65 20 7b 0d 0a 09 61 6c ;..} else {...al
0a70: 69 61 73 20 4c 50 53 54 52 20 4c 4d 53 54 52 3b ias LPSTR LMSTR;
0a80: 0d 0a 09 61 6c 69 61 73 20 4c 50 43 53 54 52 20 ...alias LPCSTR
0a90: 4c 4d 43 53 54 52 3b 0d 0a 7d 0d 0a LMCSTR;..}..