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) {