Artifact c09edf3182df2a763d4a5f691d104957bbc80415:
- File
src/win32/lmat.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 61 74 lmat 0070: 2e 64 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .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 61 74 3b 0d 0a 70 72 61 67 6d 61 28 6c 69 lmat;..pragma(li 02c0: 62 2c 20 22 6e 65 74 61 70 69 33 32 22 29 3b 0d b, "netapi32");. 02d0: 0a 0d 0a 70 72 69 76 61 74 65 20 69 6d 70 6f 72 ...private impor 02e0: 74 20 77 69 6e 33 32 2e 6c 6d 63 6f 6e 73 2c 20 t win32.lmcons, 02f0: 77 69 6e 33 32 2e 77 69 6e 64 65 66 3b 0d 0a 0d win32.windef;... 0300: 0a 63 6f 6e 73 74 20 4a 4f 42 5f 52 55 4e 5f 50 .const JOB_RUN_P 0310: 45 52 49 4f 44 49 43 41 4c 4c 59 20 3d 20 31 3b ERIODICALLY = 1; 0320: 0d 0a 63 6f 6e 73 74 20 4a 4f 42 5f 45 58 45 43 ..const JOB_EXEC 0330: 5f 45 52 52 4f 52 20 20 20 20 20 20 20 3d 20 32 _ERROR = 2 0340: 3b 0d 0a 63 6f 6e 73 74 20 4a 4f 42 5f 52 55 4e ;..const JOB_RUN 0350: 53 5f 54 4f 44 41 59 20 20 20 20 20 20 20 3d 20 S_TODAY = 0360: 34 3b 0d 0a 63 6f 6e 73 74 20 4a 4f 42 5f 41 44 4;..const JOB_AD 0370: 44 5f 43 55 52 52 45 4e 54 5f 44 41 54 45 20 3d D_CURRENT_DATE = 0380: 20 38 3b 0d 0a 63 6f 6e 73 74 20 4a 4f 42 5f 4e 8;..const JOB_N 0390: 4f 4e 49 4e 54 45 52 41 43 54 49 56 45 20 20 20 ONINTERACTIVE 03a0: 3d 20 31 36 3b 0d 0a 63 6f 6e 73 74 20 4a 4f 42 = 16;..const JOB 03b0: 5f 49 4e 50 55 54 5f 46 4c 41 47 53 20 20 20 20 _INPUT_FLAGS 03c0: 20 20 3d 20 4a 4f 42 5f 52 55 4e 5f 50 45 52 49 = JOB_RUN_PERI 03d0: 4f 44 49 43 41 4c 4c 59 20 7c 20 4a 4f 42 5f 41 ODICALLY | JOB_A 03e0: 44 44 5f 43 55 52 52 45 4e 54 5f 44 41 54 45 0d DD_CURRENT_DATE. 03f0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 . 0400: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 | 0410: 4a 4f 42 5f 4e 4f 4e 49 4e 54 45 52 41 43 54 49 JOB_NONINTERACTI 0420: 56 45 3b 0d 0a 63 6f 6e 73 74 20 4a 4f 42 5f 4f VE;..const JOB_O 0430: 55 54 50 55 54 5f 46 4c 41 47 53 20 20 20 20 20 UTPUT_FLAGS 0440: 3d 20 4a 4f 42 5f 52 55 4e 5f 50 45 52 49 4f 44 = JOB_RUN_PERIOD 0450: 49 43 41 4c 4c 59 20 7c 20 4a 4f 42 5f 45 58 45 ICALLY | JOB_EXE 0460: 43 5f 45 52 52 4f 52 0d 0a 20 20 20 20 20 20 20 C_ERROR.. 0470: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0480: 20 20 20 20 20 20 7c 20 4a 4f 42 5f 52 55 4e 53 | JOB_RUNS 0490: 5f 54 4f 44 41 59 20 7c 20 4a 4f 42 5f 4e 4f 4e _TODAY | JOB_NON 04a0: 49 4e 54 45 52 41 43 54 49 56 45 3b 0d 0a 0d 0a INTERACTIVE;.... 04b0: 73 74 72 75 63 74 20 41 54 5f 45 4e 55 4d 20 7b struct AT_ENUM { 04c0: 0d 0a 09 44 57 4f 52 44 20 4a 6f 62 49 64 3b 0d ...DWORD JobId;. 04d0: 0a 09 44 57 4f 52 44 20 4a 6f 62 54 69 6d 65 3b ..DWORD JobTime; 04e0: 0d 0a 09 44 57 4f 52 44 20 44 61 79 73 4f 66 4d ...DWORD DaysOfM 04f0: 6f 6e 74 68 3b 0d 0a 09 55 43 48 41 52 20 44 61 onth;...UCHAR Da 0500: 79 73 4f 66 57 65 65 6b 3b 0d 0a 09 55 43 48 41 ysOfWeek;...UCHA 0510: 52 20 46 6c 61 67 73 3b 0d 0a 09 4c 50 57 53 54 R Flags;...LPWST 0520: 52 20 43 6f 6d 6d 61 6e 64 3b 0d 0a 7d 0d 0a 61 R Command;..}..a 0530: 6c 69 61 73 20 41 54 5f 45 4e 55 4d 2a 20 50 41 lias AT_ENUM* PA 0540: 54 5f 45 4e 55 4d 2c 20 4c 50 41 54 5f 45 4e 55 T_ENUM, LPAT_ENU 0550: 4d 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 41 54 5f M;....struct AT_ 0560: 49 4e 46 4f 20 7b 0d 0a 09 44 57 4f 52 44 20 4a INFO {...DWORD J 0570: 6f 62 54 69 6d 65 3b 0d 0a 09 44 57 4f 52 44 20 obTime;...DWORD 0580: 44 61 79 73 4f 66 4d 6f 6e 74 68 3b 0d 0a 09 55 DaysOfMonth;...U 0590: 43 48 41 52 20 44 61 79 73 4f 66 57 65 65 6b 3b CHAR DaysOfWeek; 05a0: 0d 0a 09 55 43 48 41 52 20 46 6c 61 67 73 3b 0d ...UCHAR Flags;. 05b0: 0a 09 4c 50 57 53 54 52 20 43 6f 6d 6d 61 6e 64 ..LPWSTR Command 05c0: 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 41 54 5f 49 ;..}..alias AT_I 05d0: 4e 46 4f 2a 20 50 41 54 5f 49 4e 46 4f 2c 20 4c NFO* PAT_INFO, L 05e0: 50 41 54 5f 49 4e 46 4f 3b 0d 0a 0d 0a 65 78 74 PAT_INFO;....ext 05f0: 65 72 6e 20 28 57 69 6e 64 6f 77 73 29 20 7b 0d ern (Windows) {. 0600: 0a 09 4e 45 54 5f 41 50 49 5f 53 54 41 54 55 53 ..NET_API_STATUS 0610: 20 4e 65 74 53 63 68 65 64 75 6c 65 4a 6f 62 41 NetScheduleJobA 0620: 64 64 28 4c 50 57 53 54 52 2c 20 50 42 59 54 45 dd(LPWSTR, PBYTE 0630: 2c 20 4c 50 44 57 4f 52 44 29 3b 0d 0a 09 4e 45 , LPDWORD);...NE 0640: 54 5f 41 50 49 5f 53 54 41 54 55 53 20 4e 65 74 T_API_STATUS Net 0650: 53 63 68 65 64 75 6c 65 4a 6f 62 44 65 6c 28 4c ScheduleJobDel(L 0660: 50 57 53 54 52 2c 20 44 57 4f 52 44 2c 20 44 57 PWSTR, DWORD, DW 0670: 4f 52 44 29 3b 0d 0a 09 4e 45 54 5f 41 50 49 5f ORD);...NET_API_ 0680: 53 54 41 54 55 53 20 4e 65 74 53 63 68 65 64 75 STATUS NetSchedu 0690: 6c 65 4a 6f 62 45 6e 75 6d 28 4c 50 57 53 54 52 leJobEnum(LPWSTR 06a0: 2c 20 50 42 59 54 45 2a 2c 20 44 57 4f 52 44 2c , PBYTE*, DWORD, 06b0: 20 50 44 57 4f 52 44 2c 20 50 44 57 4f 52 44 2c PDWORD, PDWORD, 06c0: 0d 0a 09 20 20 50 44 57 4f 52 44 29 3b 0d 0a 09 ... PDWORD);... 06d0: 4e 45 54 5f 41 50 49 5f 53 54 41 54 55 53 20 4e NET_API_STATUS N 06e0: 65 74 53 63 68 65 64 75 6c 65 4a 6f 62 47 65 74 etScheduleJobGet 06f0: 49 6e 66 6f 28 4c 50 57 53 54 52 2c 20 44 57 4f Info(LPWSTR, DWO 0700: 52 44 2c 20 50 42 59 54 45 2a 29 3b 0d 0a 7d 0d RD, PBYTE*);..}. 0710: 0a .