130 guarantee (_ParkEvent != NULL, "invariant") ; |
132 guarantee (_ParkEvent != NULL, "invariant") ; |
131 } |
133 } |
132 |
134 |
133 } ; |
135 } ; |
134 |
136 |
|
137 // JDK7 requires VS2010 |
|
138 #if _MSC_VER < 1600 |
|
139 #define JDK6_OR_EARLIER 1 |
|
140 #endif |
|
141 |
|
142 |
|
143 |
|
144 class WinSock2Dll: AllStatic { |
|
145 public: |
|
146 static BOOL WSAStartup(WORD, LPWSADATA); |
|
147 static struct hostent* gethostbyname(const char *name); |
|
148 static BOOL WinSock2Available(); |
|
149 #ifdef JDK6_OR_EARLIER |
|
150 private: |
|
151 static int (PASCAL FAR* _WSAStartup)(WORD, LPWSADATA); |
|
152 static struct hostent *(PASCAL FAR *_gethostbyname)(...); |
|
153 static BOOL initialized; |
|
154 |
|
155 static void initialize(); |
|
156 #endif |
|
157 }; |
|
158 |
|
159 class Kernel32Dll: AllStatic { |
|
160 public: |
|
161 static BOOL SwitchToThread(); |
|
162 static SIZE_T GetLargePageMinimum(); |
|
163 |
|
164 static BOOL SwitchToThreadAvailable(); |
|
165 static BOOL GetLargePageMinimumAvailable(); |
|
166 |
|
167 // Help tools |
|
168 static BOOL HelpToolsAvailable(); |
|
169 static HANDLE CreateToolhelp32Snapshot(DWORD,DWORD); |
|
170 static BOOL Module32First(HANDLE,LPMODULEENTRY32); |
|
171 static BOOL Module32Next(HANDLE,LPMODULEENTRY32); |
|
172 |
|
173 static BOOL GetNativeSystemInfoAvailable(); |
|
174 static void GetNativeSystemInfo(LPSYSTEM_INFO); |
|
175 |
|
176 private: |
|
177 // GetLargePageMinimum available on Windows Vista/Windows Server 2003 |
|
178 // and later |
|
179 static SIZE_T (WINAPI *_GetLargePageMinimum)(void); |
|
180 static BOOL initialized; |
|
181 |
|
182 static void initialize(); |
|
183 |
|
184 #ifdef JDK6_OR_EARLIER |
|
185 private: |
|
186 static BOOL (WINAPI *_SwitchToThread)(void); |
|
187 static HANDLE (WINAPI* _CreateToolhelp32Snapshot)(DWORD,DWORD); |
|
188 static BOOL (WINAPI* _Module32First)(HANDLE,LPMODULEENTRY32); |
|
189 static BOOL (WINAPI* _Module32Next)(HANDLE,LPMODULEENTRY32); |
|
190 static void (WINAPI *_GetNativeSystemInfo)(LPSYSTEM_INFO); |
|
191 #endif |
|
192 |
|
193 }; |
|
194 |
|
195 class Advapi32Dll: AllStatic { |
|
196 public: |
|
197 static BOOL AdjustTokenPrivileges(HANDLE, BOOL, PTOKEN_PRIVILEGES, DWORD, PTOKEN_PRIVILEGES, PDWORD); |
|
198 static BOOL OpenProcessToken(HANDLE, DWORD, PHANDLE); |
|
199 static BOOL LookupPrivilegeValue(LPCTSTR, LPCTSTR, PLUID); |
|
200 |
|
201 static BOOL AdvapiAvailable(); |
|
202 |
|
203 #ifdef JDK6_OR_EARLIER |
|
204 private: |
|
205 static BOOL (WINAPI *_AdjustTokenPrivileges)(HANDLE, BOOL, PTOKEN_PRIVILEGES, DWORD, PTOKEN_PRIVILEGES, PDWORD); |
|
206 static BOOL (WINAPI *_OpenProcessToken)(HANDLE, DWORD, PHANDLE); |
|
207 static BOOL (WINAPI *_LookupPrivilegeValue)(LPCTSTR, LPCTSTR, PLUID); |
|
208 static BOOL initialized; |
|
209 |
|
210 static void initialize(); |
|
211 #endif |
|
212 }; |
|
213 |
|
214 class PSApiDll: AllStatic { |
|
215 public: |
|
216 static BOOL EnumProcessModules(HANDLE, HMODULE *, DWORD, LPDWORD); |
|
217 static DWORD GetModuleFileNameEx(HANDLE, HMODULE, LPTSTR, DWORD); |
|
218 static BOOL GetModuleInformation(HANDLE, HMODULE, LPMODULEINFO, DWORD); |
|
219 |
|
220 static BOOL PSApiAvailable(); |
|
221 |
|
222 #ifdef JDK6_OR_EARLIER |
|
223 private: |
|
224 static BOOL (WINAPI *_EnumProcessModules)(HANDLE, HMODULE *, DWORD, LPDWORD); |
|
225 static BOOL (WINAPI *_GetModuleFileNameEx)(HANDLE, HMODULE, LPTSTR, DWORD);; |
|
226 static BOOL (WINAPI *_GetModuleInformation)(HANDLE, HMODULE, LPMODULEINFO, DWORD); |
|
227 static BOOL initialized; |
|
228 |
|
229 static void initialize(); |
|
230 #endif |
|
231 }; |
|
232 |
135 #endif // OS_WINDOWS_VM_OS_WINDOWS_HPP |
233 #endif // OS_WINDOWS_VM_OS_WINDOWS_HPP |