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