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
|
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 // NUMA calls
177 static BOOL NumaCallsAvailable();
178 static LPVOID VirtualAllocExNuma(HANDLE, LPVOID, SIZE_T, DWORD, DWORD, DWORD);
179 static BOOL GetNumaHighestNodeNumber(PULONG);
180 static BOOL GetNumaNodeProcessorMask(UCHAR, PULONGLONG);
181
182 private:
183 // GetLargePageMinimum available on Windows Vista/Windows Server 2003
184 // and later
185 // NUMA calls available Windows Vista/WS2008 and later
186
187 static SIZE_T (WINAPI *_GetLargePageMinimum)(void);
188 static LPVOID (WINAPI *_VirtualAllocExNuma) (HANDLE, LPVOID, SIZE_T, DWORD, DWORD, DWORD);
189 static BOOL (WINAPI *_GetNumaHighestNodeNumber) (PULONG);
190 static BOOL (WINAPI *_GetNumaNodeProcessorMask) (UCHAR, PULONGLONG);
191 static BOOL initialized;
192
193 static void initialize();
194 static void initializeCommon();
195
196 #ifdef JDK6_OR_EARLIER
197 private:
198 static BOOL (WINAPI *_SwitchToThread)(void);
199 static HANDLE (WINAPI* _CreateToolhelp32Snapshot)(DWORD,DWORD);
200 static BOOL (WINAPI* _Module32First)(HANDLE,LPMODULEENTRY32);
201 static BOOL (WINAPI* _Module32Next)(HANDLE,LPMODULEENTRY32);
202 static void (WINAPI *_GetNativeSystemInfo)(LPSYSTEM_INFO);
203 #endif
204
205 };
206
207 class Advapi32Dll: AllStatic {
208 public:
209 static BOOL AdjustTokenPrivileges(HANDLE, BOOL, PTOKEN_PRIVILEGES, DWORD, PTOKEN_PRIVILEGES, PDWORD);
210 static BOOL OpenProcessToken(HANDLE, DWORD, PHANDLE);
211 static BOOL LookupPrivilegeValue(LPCTSTR, LPCTSTR, PLUID);
212
213 static BOOL AdvapiAvailable();
214
|