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