Differences From Artifact [57d6b78740d2c6bb]:
- File
src/win32/tlhelp32.d
- 2015-04-21 10:46:55 - part of checkin [4e2933c620] on branch trunk - Rebased to the latest verson dmd 2.067. Not yet verified the outcome. (user: kinaba) [annotate]
To Artifact [ae72c8193c7063ac]:
- File
src/win32/tlhelp32.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.
30 30 TH32CS_SNAPTHREAD = 0x4,
31 31 TH32CS_SNAPMODULE = 0x8,
32 32 TH32CS_SNAPALL = (TH32CS_SNAPHEAPLIST|TH32CS_SNAPPROCESS|TH32CS_SNAPTHREAD|TH32CS_SNAPMODULE),
33 33 TH32CS_INHERIT = 0x80000000
34 34 }
35 35
36 36 struct HEAPLIST32 {
37 - DWORD dwSize;
37 + SIZE_T dwSize;
38 38 DWORD th32ProcessID;
39 - DWORD th32HeapID;
39 + ULONG_PTR th32HeapID;
40 40 DWORD dwFlags;
41 41 }
42 42 alias HEAPLIST32* PHEAPLIST32;
43 43 alias HEAPLIST32* LPHEAPLIST32;
44 44
45 45 struct HEAPENTRY32 {
46 - DWORD dwSize;
46 + SIZE_T dwSize;
47 47 HANDLE hHandle;
48 - DWORD dwAddress;
49 - DWORD dwBlockSize;
48 + ULONG_PTR dwAddress;
49 + SIZE_T dwBlockSize;
50 50 DWORD dwFlags;
51 51 DWORD dwLockCount;
52 52 DWORD dwResvd;
53 53 DWORD th32ProcessID;
54 - DWORD th32HeapID;
54 + ULONG_PTR th32HeapID;
55 55 }
56 56 alias HEAPENTRY32* PHEAPENTRY32;
57 57 alias HEAPENTRY32* LPHEAPENTRY32;
58 58
59 59 struct PROCESSENTRY32W {
60 60 DWORD dwSize;
61 61 DWORD cntUsage;
62 62 DWORD th32ProcessID;
63 - DWORD th32DefaultHeapID;
63 + ULONG_PTR th32DefaultHeapID;
64 64 DWORD th32ModuleID;
65 65 DWORD cntThreads;
66 66 DWORD th32ParentProcessID;
67 67 LONG pcPriClassBase;
68 68 DWORD dwFlags;
69 - WCHAR szExeFile[MAX_PATH];
69 + WCHAR[MAX_PATH] szExeFile;
70 70 }
71 71 alias PROCESSENTRY32W* PPROCESSENTRY32W;
72 72 alias PROCESSENTRY32W* LPPROCESSENTRY32W;
73 73
74 74 struct THREADENTRY32 {
75 75 DWORD dwSize;
76 76 DWORD cntUsage;
................................................................................
88 88 DWORD th32ModuleID;
89 89 DWORD th32ProcessID;
90 90 DWORD GlblcntUsage;
91 91 DWORD ProccntUsage;
92 92 BYTE *modBaseAddr;
93 93 DWORD modBaseSize;
94 94 HMODULE hModule;
95 - WCHAR szModule[MAX_MODULE_NAME32 + 1];
96 - WCHAR szExePath[MAX_PATH];
95 + WCHAR[MAX_MODULE_NAME32 + 1] szModule;
96 + WCHAR[MAX_PATH] szExePath;
97 97 }
98 98 alias MODULEENTRY32W* PMODULEENTRY32W;
99 99 alias MODULEENTRY32W* LPMODULEENTRY32W;
100 100
101 101 version(Unicode) {
102 102 alias PROCESSENTRY32W PROCESSENTRY32;
103 103 alias PPROCESSENTRY32W PPROCESSENTRY32;
................................................................................
107 107 alias PMODULEENTRY32W PMODULEENTRY32;
108 108 alias LPMODULEENTRY32W LPMODULEENTRY32;
109 109 } else {
110 110 struct PROCESSENTRY32 {
111 111 DWORD dwSize;
112 112 DWORD cntUsage;
113 113 DWORD th32ProcessID;
114 - DWORD th32DefaultHeapID;
114 + ULONG_PTR th32DefaultHeapID;
115 115 DWORD th32ModuleID;
116 116 DWORD cntThreads;
117 117 DWORD th32ParentProcessID;
118 118 LONG pcPriClassBase;
119 119 DWORD dwFlags;
120 - CHAR szExeFile[MAX_PATH];
120 + CHAR[MAX_PATH] szExeFile;
121 121 }
122 122 alias PROCESSENTRY32* PPROCESSENTRY32;
123 123 alias PROCESSENTRY32* LPPROCESSENTRY32;
124 124
125 125 struct MODULEENTRY32 {
126 126 DWORD dwSize;
127 127 DWORD th32ModuleID;
128 128 DWORD th32ProcessID;
129 129 DWORD GlblcntUsage;
130 130 DWORD ProccntUsage;
131 131 BYTE *modBaseAddr;
132 132 DWORD modBaseSize;
133 133 HMODULE hModule;
134 - char szModule[MAX_MODULE_NAME32 + 1];
135 - char szExePath[MAX_PATH];
134 + char[MAX_MODULE_NAME32 + 1] szModule;
135 + char[MAX_PATH] szExePath;
136 136 }
137 137 alias MODULEENTRY32* PMODULEENTRY32;
138 138 alias MODULEENTRY32* LPMODULEENTRY32;
139 139 }
140 140
141 141
142 142 extern(Windows) {