CommonLibVR
KERNEL32.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "REX/W32/BASE.h"
4 
5 namespace REX::W32
6 {
7  // standard access
8  inline constexpr auto STANDARD_RIGHTS_REQUIRED{ 0x000F0000 };
9  inline constexpr auto STANDARD_RIGHTS_ALL{ 0x001F0000 };
10 
11  // code page identifiers
12  inline constexpr auto CP_UTF8{ 65001u };
13 
14  // memory allocation types
15  inline constexpr auto MEM_COMMIT{ 0x00001000u };
16  inline constexpr auto MEM_RESERVE{ 0x00002000u };
17  inline constexpr auto MEM_DECOMMIT{ 0x00004000u };
18  inline constexpr auto MEM_RELEASE{ 0x00008000u };
19  inline constexpr auto MEM_FREE{ 0x00010000u };
20  inline constexpr auto MEM_RESET{ 0x00080000u };
21  inline constexpr auto MEM_RESET_UNDO{ 0x01000000u };
22 
23  // memory page protection attributes
24  inline constexpr auto PAGE_NOACCESS{ 0x00000001u };
25  inline constexpr auto PAGE_READONLY{ 0x00000002u };
26  inline constexpr auto PAGE_READWRITE{ 0x00000004u };
27  inline constexpr auto PAGE_WRITECOPY{ 0x00000008u };
28  inline constexpr auto PAGE_EXECUTE{ 0x00000010u };
29  inline constexpr auto PAGE_EXECUTE_READ{ 0x00000020u };
30  inline constexpr auto PAGE_EXECUTE_READWRITE{ 0x00000040u };
31 
32  // memory section
33  inline constexpr auto SECTION_QUERY{ 0x00000001 };
34  inline constexpr auto SECTION_MAP_WRITE{ 0x00000002 };
35  inline constexpr auto SECTION_MAP_READ{ 0x00000004 };
36  inline constexpr auto SECTION_MAP_EXECUTE{ 0x00000008 };
37  inline constexpr auto SECTION_EXTEND_SIZE{ 0x00000010 };
38  inline constexpr auto SECTION_MAP_EXECUTE_EXPLICIT{ 0x00000020 };
39  inline constexpr auto SECTION_ALL_ACCESS{
41  };
42 
43  // file attributes
44  inline constexpr auto FILE_ATTRIBUTE_READONLY{ 0x00000001u };
45  inline constexpr auto FILE_ATTRIBUTE_HIDDEN{ 0x00000002u };
46  inline constexpr auto FILE_ATTRIBUTE_SYSTEM{ 0x00000004u };
47  inline constexpr auto FILE_ATTRIBUTE_DIRECTORY{ 0x00000010u };
48  inline constexpr auto FILE_ATTRIBUTE_ARCHIVE{ 0x00000020u };
49 
50  // file mapping flags
51  inline constexpr auto FILE_MAP_ALL_ACCESS{ SECTION_ALL_ACCESS };
52  inline constexpr auto FILE_MAP_COPY{ 0x00000001u };
53  inline constexpr auto FILE_MAP_WRITE{ 0x00000002u };
54  inline constexpr auto FILE_MAP_READ{ 0x00000004u };
55  inline constexpr auto FILE_MAP_EXECUTE{ 0x00000020u };
56  inline constexpr auto FILE_MAP_LARGE_PAGES{ 0x20000000u };
57  inline constexpr auto FILE_MAP_TARGETS_INVALID{ 0x40000000u };
58  inline constexpr auto FILE_MAP_RESERVE{ 0x80000000u };
59 
60  // file open mode flags
61  inline constexpr auto GENERIC_READ{ 0x80000000L };
62  inline constexpr auto GENERIC_WRITE{ 0x40000000L };
63  inline constexpr auto GENERIC_EXECUTE{ 0x20000000L };
64  inline constexpr auto GENERIC_ALL{ 0x10000000L };
65 
66  // pe image header
67  inline constexpr auto IMAGE_DOS_SIGNATURE{ 0x5A4Du };
68  inline constexpr auto IMAGE_NT_SIGNATURE{ 0x00004550u };
69  inline constexpr auto IMAGE_NT_OPTIONAL_HDR32_MAGIC{ 0x10Bu };
70  inline constexpr auto IMAGE_NT_OPTIONAL_HDR64_MAGIC{ 0x20Bu };
71 
72  // pe image directory entries
73  inline constexpr auto IMAGE_DIRECTORY_ENTRY_EXPORT{ 0u };
74  inline constexpr auto IMAGE_DIRECTORY_ENTRY_IMPORT{ 1u };
75  inline constexpr auto IMAGE_DIRECTORY_ENTRY_RESOURCE{ 2u };
76  inline constexpr auto IMAGE_DIRECTORY_ENTRY_EXCEPTION{ 3u };
77  inline constexpr auto IMAGE_DIRECTORY_ENTRY_SECURITY{ 4u };
78  inline constexpr auto IMAGE_DIRECTORY_ENTRY_BASERELOC{ 5u };
79  inline constexpr auto IMAGE_DIRECTORY_ENTRY_DEBUG{ 6u };
80  inline constexpr auto IMAGE_DIRECTORY_ENTRY_ARCHITECTURE{ 7u };
81  inline constexpr auto IMAGE_DIRECTORY_ENTRY_GLOBALPTR{ 8u };
82  inline constexpr auto IMAGE_DIRECTORY_ENTRY_TLS{ 9u };
83  inline constexpr auto IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG{ 10u };
84  inline constexpr auto IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT{ 11u };
85  inline constexpr auto IMAGE_DIRECTORY_ENTRY_IAT{ 12u };
86  inline constexpr auto IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT{ 13u };
87  inline constexpr auto IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR{ 14u };
88  inline constexpr auto IMAGE_NUMBEROF_DIRECTORY_ENTRIES{ 16u };
89 
90  // pe image ordinal
91  inline constexpr auto IMAGE_ORDINAL_FLAG32{ 0x80000000u };
92  inline constexpr auto IMAGE_ORDINAL_FLAG64{ 0x8000000000000000ull };
93 
94  // pe image section header characteristics
95  inline constexpr auto IMAGE_SCN_MEM_SHARED{ 0x10000000u };
96  inline constexpr auto IMAGE_SCN_MEM_EXECUTE{ 0x20000000u };
97  inline constexpr auto IMAGE_SCN_MEM_READ{ 0x40000000u };
98  inline constexpr auto IMAGE_SCN_MEM_WRITE{ 0x80000000u };
99  inline constexpr auto IMAGE_SIZEOF_SECTION_HEADER{ 40u };
100  inline constexpr auto IMAGE_SIZEOF_SHORT_NAME{ 8u };
101 
102  // process creation flags
103  inline constexpr auto DEBUG_PROCESS{ 0x00000001u };
104  inline constexpr auto DEBUG_ONLY_THIS_PROCESS{ 0x00000002u };
105  inline constexpr auto CREATE_SUSPENDED{ 0x00000004u };
106  inline constexpr auto DETACHED_PROCESS{ 0x00000008u };
107  inline constexpr auto CREATE_NEW_CONSOLE{ 0x00000010u };
108  inline constexpr auto NORMAL_PRIORITY_CLASS{ 0x00000020u };
109  inline constexpr auto IDLE_PRIORITY_CLASS{ 0x00000040u };
110  inline constexpr auto HIGH_PRIORITY_CLASS{ 0x00000080u };
111  inline constexpr auto REALTIME_PRIORITY_CLASS{ 0x00000100u };
112  inline constexpr auto CREATE_NEW_PROCESS_GROUP{ 0x00000200u };
113  inline constexpr auto CREATE_UNICODE_ENVIRONMENT{ 0x00000400u };
114  inline constexpr auto CREATE_FORCEDOS{ 0x00002000u };
115  inline constexpr auto BELOW_NORMAL_PRIORITY_CLASS{ 0x00004000u };
116  inline constexpr auto ABOVE_NORMAL_PRIORITY_CLASS{ 0x00008000u };
117  inline constexpr auto INHERIT_PARENT_AFFINITY{ 0x00010000u };
118  inline constexpr auto CREATE_PROTECTED_PROCESS{ 0x00040000u };
119  inline constexpr auto EXTENDED_STARTUPINFO_PRESENT{ 0x00080000u };
120  inline constexpr auto PROCESS_MODE_BACKGROUND_BEGIN{ 0x00100000u };
121  inline constexpr auto PROCESS_MODE_BACKGROUND_END{ 0x00200000u };
122  inline constexpr auto CREATE_SECURE_PROCESS{ 0x00400000 };
123  inline constexpr auto CREATE_BREAKAWAY_FROM_JOB{ 0x01000000u };
124  inline constexpr auto CREATE_PRESERVE_CODE_AUTHZ_LEVEL{ 0x02000000u };
125  inline constexpr auto CREATE_DEFAULT_ERROR_MODE{ 0x04000000u };
126  inline constexpr auto CREATE_NO_WINDOW{ 0x08000000u };
127 
128  // locale map flags
129  inline constexpr auto LCMAP_LOWERCASE{ 0x00000100u };
130  inline constexpr auto LCMAP_UPPERCASE{ 0x00000200u };
131  inline constexpr auto LCMAP_TITLECASE{ 0x00000300u };
132  inline constexpr auto LCMAP_SORTKEY{ 0x00000400u };
133  inline constexpr auto LCMAP_BYTEREV{ 0x00000800u };
134  inline constexpr auto LCMAP_HIRAGANA{ 0x00100000u };
135  inline constexpr auto LCMAP_KATAKANA{ 0x00200000u };
136  inline constexpr auto LCMAP_HALFWIDTH{ 0x00400000u };
137  inline constexpr auto LCMAP_FULLWIDTH{ 0x00800000u };
138  inline constexpr auto LCMAP_LINGUISTIC_CASING{ 0x01000000u };
139  inline constexpr auto LCMAP_SIMPLIFIED_CHINESE{ 0x02000000u };
140  inline constexpr auto LCMAP_TRADITIONAL_CHINESE{ 0x04000000u };
141 
142  // locale names
143  inline constexpr auto LOCALE_NAME_USER_DEFAULT{ nullptr };
144  inline constexpr auto LOCALE_NAME_INVARIANT{ L"" };
145  inline constexpr auto LOCALE_NAME_SYSTEM_DEFAULT{ L"!x-sys-default-locale" };
146 }
147 
148 namespace REX::W32
149 {
151  {
152  std::uint32_t virtualAddress;
153  std::uint32_t size;
154  };
155  static_assert(sizeof(IMAGE_DATA_DIRECTORY) == 0x8);
156 
158  {
159  std::uint16_t magic;
160  std::uint16_t cblp;
161  std::uint16_t cp;
162  std::uint16_t crlc;
163  std::uint16_t cparhdr;
164  std::uint16_t minalloc;
165  std::uint16_t maxalloc;
166  std::uint16_t ss;
167  std::uint16_t sp;
168  std::uint16_t csum;
169  std::uint16_t ip;
170  std::uint16_t cs;
171  std::uint16_t lfarlc;
172  std::uint16_t ovno;
173  std::uint16_t res[4];
174  std::uint16_t oemid;
175  std::uint16_t oeminfo;
176  std::uint16_t res2[10];
177  std::int32_t lfanew;
178  };
179  static_assert(sizeof(IMAGE_DOS_HEADER) == 0x40);
180 
182  {
183  std::uint16_t machine;
184  std::uint16_t sectionCount;
185  std::uint32_t timeDateStamp;
186  std::uint32_t symbolTablePtr;
187  std::uint32_t symbolCount;
188  std::uint16_t optionalHeaderSize;
189  std::uint16_t characteristics;
190  };
191  static_assert(sizeof(IMAGE_FILE_HEADER) == 0x14);
192 
194  {
195  std::uint16_t hint;
196  char name[1];
197  };
198  static_assert(sizeof(IMAGE_IMPORT_BY_NAME) == 0x4);
199 
201  {
202  union
203  {
204  std::uint32_t characteristics;
205  std::uint32_t firstThunkOriginal;
206  };
207 
208  std::uint32_t timeDateStamp;
209  std::uint32_t forwarderChain;
210  std::uint32_t name;
211  std::uint32_t firstThunk;
212  };
213  static_assert(sizeof(IMAGE_IMPORT_DESCRIPTOR) == 0x14);
214 
216  {
217  std::uint16_t magic;
218  std::uint8_t linkerVersionMajor;
219  std::uint8_t linkerVersionMinor;
220  std::uint32_t codeSize;
221  std::uint32_t initializedDataSize;
222  std::uint32_t uninitializedDataSize;
223  std::uint32_t entryPointAddress;
224  std::uint32_t codeBase;
225  std::uint64_t imageBase;
226  std::uint32_t sectionAlignment;
227  std::uint32_t fileAlignment;
228  std::uint16_t osVersionMajor;
229  std::uint16_t osVersionMinor;
230  std::uint16_t imageVersionMajor;
231  std::uint16_t imageVersionMinor;
232  std::uint16_t subsystemVersionMajor;
233  std::uint16_t subsystemVersionMinor;
234  std::uint32_t win32Version;
235  std::uint32_t imageSize;
236  std::uint32_t headersSize;
237  std::uint32_t checksum;
238  std::uint16_t subsystem;
239  std::uint16_t dllCharacteristics;
240  std::uint64_t stackReserveSize;
241  std::uint64_t stackCommitSize;
242  std::uint64_t heapReserveSize;
243  std::uint64_t heapCommitSize;
244  std::uint32_t loaderFlags;
245  std::uint32_t rvaAndSizesCount;
247  };
248  static_assert(sizeof(IMAGE_OPTIONAL_HEADER64) == 0xF0);
249 
251  {
252  std::uint32_t signature;
255  };
256  static_assert(sizeof(IMAGE_NT_HEADERS64) == 0x108);
257 
259  {
261  union
262  {
263  std::uint32_t physicalAddress;
264  std::uint32_t virtualSize;
265  };
266  std::uint32_t virtualAddress;
267  std::uint32_t rawDataSize;
268  std::uint32_t rawDataPtr;
269  std::uint32_t relocationsPtr;
270  std::uint32_t lineNumbersPtr;
271  std::uint16_t relocationsCount;
272  std::uint16_t lineNumbersCount;
273  std::uint32_t characteristics;
274  };
275  static_assert(sizeof(IMAGE_SECTION_HEADER) == 0x28);
276 
278  {
279  union
280  {
281  std::uint64_t forwarderString;
282  std::uint64_t function;
283  std::uint64_t ordinal;
284  std::uint64_t address;
285  };
286  };
287  static_assert(sizeof(IMAGE_THUNK_DATA64) == 0x8);
288 
290  {
291  void* baseAddress;
293  std::uint32_t allocationProtect;
294  std::uint16_t partitionID;
295  std::size_t regionSize;
296  std::uint32_t state;
297  std::uint32_t protect;
298  std::uint32_t type;
299  };
300  static_assert(sizeof(MEMORY_BASIC_INFORMATION) == 0x30);
301 
303  {
304  std::uint32_t nlsVersionInfoSize;
305  std::uint32_t nlsVersion;
306  std::uint32_t definedVersion;
307  std::uint32_t effectiveID;
309  };
310  static_assert(sizeof(NLSVERSIONINFO) == 0x20);
311 
313  {
314  void* process;
315  void* thread;
316  std::uint32_t processID;
317  std::uint32_t threadID;
318  };
319  static_assert(sizeof(PROCESS_INFORMATION) == 0x18);
320 
322  {
323  std::uint32_t size;
324  char* reserved0;
325  char* desktop;
326  char* title;
327  std::uint32_t x;
328  std::uint32_t y;
329  std::uint32_t xSize;
330  std::uint32_t ySize;
331  std::uint32_t xCountChars;
332  std::uint32_t yCountChars;
333  std::uint32_t fillAttribute;
334  std::uint32_t flags;
335  std::uint16_t showWindow;
336  std::uint16_t reserved1;
337  std::uint8_t* reserved2;
338  void* stdIn;
339  void* stdOut;
340  void* stdErr;
341  };
342  static_assert(sizeof(STARTUPINFOA) == 0x68);
343 
345  {
346  std::uint32_t size;
347  wchar_t* reserved0;
348  wchar_t* desktop;
349  wchar_t* title;
350  std::uint32_t x;
351  std::uint32_t y;
352  std::uint32_t xSize;
353  std::uint32_t ySize;
354  std::uint32_t xCountChars;
355  std::uint32_t yCountChars;
356  std::uint32_t fillAttribute;
357  std::uint32_t flags;
358  std::uint16_t showWindow;
359  std::uint16_t reserved1;
360  std::uint8_t* reserved2;
361  void* stdIn;
362  void* stdOut;
363  void* stdErr;
364  };
365  static_assert(sizeof(STARTUPINFOW) == 0x68);
366 
367  struct SYSTEM_INFO
368  {
369  union
370  {
371  std::uint32_t oemID;
372  struct
373  {
374  std::uint16_t processorArch;
375  std::uint16_t reserved;
376  };
377  };
378  std::uint32_t pageSize;
381  std::uintptr_t processorActiveMask;
382  std::uint32_t processorCount;
383  std::uint32_t processorType;
384  std::uint32_t allocationGranularity;
385  std::uint16_t processorLevel;
386  std::uint16_t processorRevision;
387  };
388  static_assert(sizeof(SYSTEM_INFO) == 0x30);
389 
391  {
392  std::uint32_t fileAttributes;
396  std::uint32_t fileSizeHi;
397  std::uint32_t fileSizeLo;
398  std::uint32_t reserved0;
399  std::uint32_t reserved1;
401  char fileNameAlt[14];
402  };
403  static_assert(sizeof(WIN32_FIND_DATAA) == 0x140);
404 
406  {
407  std::uint32_t fileAttributes;
411  std::uint32_t fileSizeHi;
412  std::uint32_t fileSizeLo;
413  std::uint32_t reserved0;
414  std::uint32_t reserved1;
415  wchar_t fileName[MAX_PATH];
416  wchar_t fileNameAlt[14];
417  };
418  static_assert(sizeof(WIN32_FIND_DATAW) == 0x250);
419 }
420 
421 namespace REX::W32
422 {
423  using THREAD_START_ROUTINE = std::uint32_t(void* a_param);
424 }
425 
426 namespace REX::W32
427 {
428  bool CloseHandle(HANDLE a_handle) noexcept;
429  HANDLE CreateFileMappingA(HANDLE a_file, SECURITY_ATTRIBUTES* a_attributes, std::uint32_t a_protect, std::uint32_t a_maxSizeHigh, std::uint32_t a_maxSizeLow, const char* a_name) noexcept;
430  HANDLE CreateFileMappingW(HANDLE a_file, SECURITY_ATTRIBUTES* a_attributes, std::uint32_t a_protect, std::uint32_t a_maxSizeHigh, std::uint32_t a_maxSizeLow, const wchar_t* a_name) noexcept;
431  bool CreateProcessA(const char* a_name, char* a_cmd, SECURITY_ATTRIBUTES* a_procAttr, SECURITY_ATTRIBUTES* a_threadAttr, bool a_inheritHandles, std::uint32_t a_flags, void* a_env, const char* a_curDir, STARTUPINFOA* a_startInfo, PROCESS_INFORMATION* a_procInfo) noexcept;
432  bool CreateProcessW(const wchar_t* a_name, wchar_t* a_cmd, SECURITY_ATTRIBUTES* a_procAttr, SECURITY_ATTRIBUTES* a_threadAttr, bool a_inheritHandles, std::uint32_t a_flags, void* a_env, const wchar_t* a_curDir, STARTUPINFOW* a_startInfo, PROCESS_INFORMATION* a_procInfo) noexcept;
433  HANDLE CreateRemoteThread(HANDLE a_process, SECURITY_ATTRIBUTES* a_threadAttr, std::size_t a_stackSize, THREAD_START_ROUTINE* a_startAddr, void* a_param, std::uint32_t a_flags, std::uint32_t* a_threadID) noexcept;
434  HANDLE CreateSemaphoreA(SECURITY_ATTRIBUTES* a_semaphoreAttr, std::int32_t a_initCount, std::int32_t a_maxCount, const char* a_name);
435  HANDLE CreateThread(SECURITY_ATTRIBUTES* a_threadAttr, std::size_t a_stackSize, THREAD_START_ROUTINE* a_startAddr, void* a_param, std::uint32_t a_flags, std::uint32_t* a_threadID) noexcept;
436  void DeleteCriticalSection(CRITICAL_SECTION* a_criticalSection);
437  void EnterCriticalSection(CRITICAL_SECTION* a_criticalSection);
438  std::uint32_t ExpandEnvironmentStrings(const char* a_src, char* a_dst, std::uint32_t a_dstLen) noexcept;
439  std::uint32_t ExpandEnvironmentStrings(const wchar_t* a_src, wchar_t* a_dst, std::uint32_t a_dstLen) noexcept;
440  bool FindClose(HANDLE a_file) noexcept;
441  HANDLE FindFirstFileA(const char* a_name, WIN32_FIND_DATAA* a_data) noexcept;
442  HANDLE FindFirstFileW(const wchar_t* a_name, WIN32_FIND_DATAW* a_data) noexcept;
443  bool FindNextFileA(HANDLE a_file, WIN32_FIND_DATAA* a_data) noexcept;
444  bool FindNextFileW(HANDLE a_file, WIN32_FIND_DATAW* a_data) noexcept;
445  bool FlushInstructionCache(HANDLE a_process, const void* a_baseAddr, std::size_t a_size) noexcept;
446  bool FreeLibrary(HMODULE a_module) noexcept;
449  std::uint32_t GetCurrentThreadId() noexcept;
450  std::uint32_t GetEnvironmentVariableA(const char* a_name, char* a_buf, std::uint32_t a_bufLen) noexcept;
451  std::uint32_t GetEnvironmentVariableW(const wchar_t* a_name, wchar_t* a_buf, std::uint32_t a_bufLen) noexcept;
452  std::uint32_t GetLastError() noexcept;
453  std::uint32_t GetModuleFileNameA(HMODULE a_module, char* a_name, std::uint32_t a_nameLen) noexcept;
454  std::uint32_t GetModuleFileNameW(HMODULE a_module, wchar_t* a_name, std::uint32_t a_nameLen) noexcept;
455  HMODULE GetModuleHandleA(const char* a_name) noexcept;
456  HMODULE GetModuleHandleW(const wchar_t* a_name) noexcept;
457  std::uint32_t GetPrivateProfileStringA(const char* a_app, const char* a_key, const char* a_default, char* a_buf, std::uint32_t a_bufLen, const char* a_name) noexcept;
458  std::uint32_t GetPrivateProfileStringW(const wchar_t* a_app, const wchar_t* a_key, const wchar_t* a_default, wchar_t* a_buf, std::uint32_t a_bufLen, const wchar_t* a_name) noexcept;
459  void* GetProcAddress(HMODULE a_module, const char* a_name) noexcept;
460  void GetSystemInfo(SYSTEM_INFO* a_info) noexcept;
461  bool IMAGE_SNAP_BY_ORDINAL64(std::uint64_t a_ordinal) noexcept;
463  bool InitializeCriticalSectionAndSpinCount(CRITICAL_SECTION* a_criticalSection, std::uint32_t a_spinCount);
464  std::uint32_t InterlockedCompareExchange(volatile std::uint32_t* a_target, std::uint32_t a_value, std::uint32_t a_compare) noexcept;
465  std::uint64_t InterlockedCompareExchange64(volatile std::uint64_t* a_target, std::uint64_t a_value, std::uint64_t a_compare) noexcept;
466  std::uint32_t InterlockedDecrement(volatile std::uint32_t* a_target) noexcept;
467  std::uint64_t InterlockedDecrement64(volatile std::uint64_t* a_target) noexcept;
468  std::uint32_t InterlockedExchange(volatile std::uint32_t* a_target, std::uint32_t a_value) noexcept;
469  std::uint64_t InterlockedExchange64(volatile std::uint64_t* a_target, std::uint64_t a_value) noexcept;
470  std::uint32_t InterlockedIncrement(volatile std::uint32_t* a_target) noexcept;
471  std::uint64_t InterlockedIncrement64(volatile std::uint64_t* a_target) noexcept;
472  bool IsDebuggerPresent() noexcept;
473  std::int32_t LCMapStringEx(const wchar_t* a_locale, std::uint32_t a_flags, const wchar_t* a_src, std::int32_t a_srcLen, wchar_t* a_dst, std::int32_t a_dstLen, NLSVERSIONINFO* a_info, void* a_reserved, std::intptr_t a_sortHandle) noexcept;
474  void LeaveCriticalSection(CRITICAL_SECTION* a_criticalSection);
475  HMODULE LoadLibraryA(const char* a_name) noexcept;
476  HMODULE LoadLibraryW(const wchar_t* a_name) noexcept;
477  void* MapViewOfFile(HANDLE a_object, std::uint32_t a_desiredAccess, std::uint32_t a_fileOffsetHi, std::uint32_t a_fileOffsetLo, std::size_t a_numBytes) noexcept;
478  void* MapViewOfFileEx(HANDLE a_object, std::uint32_t a_desiredAccess, std::uint32_t a_fileOffsetHi, std::uint32_t a_fileOffsetLo, std::size_t a_numBytes, void* a_baseAddr) noexcept;
479  std::int32_t MultiByteToWideChar(std::uint32_t a_codePage, std::uint32_t a_flags, const char* a_src, std::int32_t a_srcLen, wchar_t* a_dst, std::int32_t a_dstLen) noexcept;
480  HANDLE OpenFileMappingA(std::uint32_t a_desiredAccess, bool a_inheritHandle, const char* a_name) noexcept;
481  HANDLE OpenFileMappingW(std::uint32_t a_desiredAccess, bool a_inheritHandle, const wchar_t* a_name) noexcept;
482  void OutputDebugStringA(const char* a_str) noexcept;
483  void OutputDebugStringW(const wchar_t* a_str) noexcept;
484  bool QueryPerformanceCounter(std::int64_t* a_counter) noexcept;
485  bool QueryPerformanceFrequency(std::int64_t* a_frequency) noexcept;
486  std::uint32_t ResumeThread(HANDLE a_handle) noexcept;
487  bool SetEnvironmentVariableA(const char* a_name, const char* a_value) noexcept;
488  bool SetEnvironmentVariableW(const wchar_t* a_name, const wchar_t* a_value) noexcept;
489  void Sleep(std::uint32_t a_milliseconds) noexcept;
490  bool TerminateProcess(HANDLE a_process, std::uint32_t a_exitCode) noexcept;
491  void* TlsGetValue(std::uint32_t a_index) noexcept;
492  bool TlsSetValue(std::uint32_t a_index, void* a_value) noexcept;
493  bool UnmapViewOfFile(const void* a_baseAddress) noexcept;
494  void* VirtualAlloc(void* a_address, std::size_t a_size, std::uint32_t a_type, std::uint32_t a_protect) noexcept;
495  void* VirtualAllocEx(HANDLE a_process, void* a_address, std::size_t a_size, std::uint32_t a_type, std::uint32_t a_protect) noexcept;
496  bool VirtualFree(void* a_address, std::size_t a_size, std::uint32_t a_type) noexcept;
497  bool VirtualFreeEx(HANDLE a_process, void* a_address, std::size_t a_size, std::uint32_t a_type) noexcept;
498  bool VirtualProtect(void* a_address, std::size_t a_size, std::uint32_t a_newProtect, std::uint32_t* a_oldProtect) noexcept;
499  bool VirtualProtectEx(HANDLE a_process, void* a_address, std::size_t a_size, std::uint32_t a_newProtect, std::uint32_t* a_oldProtect) noexcept;
500  std::size_t VirtualQuery(const void* a_address, MEMORY_BASIC_INFORMATION* a_buf, std::size_t a_bufLen) noexcept;
501  std::size_t VirtualQueryEx(HANDLE a_process, const void* a_address, MEMORY_BASIC_INFORMATION* a_buf, std::size_t a_bufLen) noexcept;
502  std::uint32_t WaitForSingleObject(HANDLE a_handle, std::uint32_t a_milliseconds) noexcept;
503  std::uint32_t WaitForSingleObjectEx(HANDLE a_handle, std::uint32_t a_milliseconds, bool a_alertable) noexcept;
504  std::int32_t WideCharToMultiByte(std::uint32_t a_codePage, std::uint32_t a_flags, const wchar_t* a_src, std::int32_t a_srcLen, char* a_dst, std::int32_t a_dstLen, const char* a_default, std::int32_t* a_defaultLen);
505  bool WriteProcessMemory(HANDLE a_process, void* a_address, const void* a_buf, std::size_t a_bufLen, std::size_t* a_bufWritten) noexcept;
506 }
Definition: BSDirectInputManager.h:8
HANDLE FindFirstFileA(const char *a_name, WIN32_FIND_DATAA *a_data) noexcept
constexpr auto IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR
Definition: KERNEL32.h:87
constexpr auto PAGE_READWRITE
Definition: KERNEL32.h:26
constexpr auto PAGE_EXECUTE_READ
Definition: KERNEL32.h:29
bool VirtualFreeEx(HANDLE a_process, void *a_address, std::size_t a_size, std::uint32_t a_type) noexcept
std::uint32_t WaitForSingleObject(HANDLE a_handle, std::uint32_t a_milliseconds) noexcept
constexpr auto FILE_ATTRIBUTE_READONLY
Definition: KERNEL32.h:44
constexpr auto LCMAP_TRADITIONAL_CHINESE
Definition: KERNEL32.h:140
constexpr auto FILE_ATTRIBUTE_SYSTEM
Definition: KERNEL32.h:46
std::int32_t WideCharToMultiByte(std::uint32_t a_codePage, std::uint32_t a_flags, const wchar_t *a_src, std::int32_t a_srcLen, char *a_dst, std::int32_t a_dstLen, const char *a_default, std::int32_t *a_defaultLen)
constexpr auto SECTION_EXTEND_SIZE
Definition: KERNEL32.h:37
bool FlushInstructionCache(HANDLE a_process, const void *a_baseAddr, std::size_t a_size) noexcept
HANDLE OpenFileMappingW(std::uint32_t a_desiredAccess, bool a_inheritHandle, const wchar_t *a_name) noexcept
constexpr auto IMAGE_NT_OPTIONAL_HDR32_MAGIC
Definition: KERNEL32.h:69
constexpr auto IMAGE_NT_SIGNATURE
Definition: KERNEL32.h:68
constexpr auto IMAGE_DIRECTORY_ENTRY_DEBUG
Definition: KERNEL32.h:79
bool CreateProcessA(const char *a_name, char *a_cmd, SECURITY_ATTRIBUTES *a_procAttr, SECURITY_ATTRIBUTES *a_threadAttr, bool a_inheritHandles, std::uint32_t a_flags, void *a_env, const char *a_curDir, STARTUPINFOA *a_startInfo, PROCESS_INFORMATION *a_procInfo) noexcept
void LeaveCriticalSection(CRITICAL_SECTION *a_criticalSection)
IMAGE_SECTION_HEADER * IMAGE_FIRST_SECTION(const IMAGE_NT_HEADERS64 *a_header) noexcept
std::size_t VirtualQuery(const void *a_address, MEMORY_BASIC_INFORMATION *a_buf, std::size_t a_bufLen) noexcept
bool TerminateProcess(HANDLE a_process, std::uint32_t a_exitCode) noexcept
void * HANDLE
Definition: BASE.h:14
void OutputDebugStringA(const char *a_str) noexcept
std::uint32_t ResumeThread(HANDLE a_handle) noexcept
constexpr auto MEM_DECOMMIT
Definition: KERNEL32.h:17
constexpr auto PAGE_WRITECOPY
Definition: KERNEL32.h:27
constexpr auto MEM_COMMIT
Definition: KERNEL32.h:15
void Sleep(std::uint32_t a_milliseconds) noexcept
constexpr auto IMAGE_DIRECTORY_ENTRY_GLOBALPTR
Definition: KERNEL32.h:81
constexpr auto SECTION_MAP_READ
Definition: KERNEL32.h:35
constexpr auto CREATE_UNICODE_ENVIRONMENT
Definition: KERNEL32.h:113
constexpr auto FILE_ATTRIBUTE_ARCHIVE
Definition: KERNEL32.h:48
constexpr auto INHERIT_PARENT_AFFINITY
Definition: KERNEL32.h:117
constexpr auto CP_UTF8
Definition: KERNEL32.h:12
constexpr auto SECTION_MAP_EXECUTE
Definition: KERNEL32.h:36
constexpr auto FILE_MAP_EXECUTE
Definition: KERNEL32.h:55
constexpr auto MEM_RESET_UNDO
Definition: KERNEL32.h:21
constexpr auto STANDARD_RIGHTS_ALL
Definition: KERNEL32.h:9
constexpr auto CREATE_NEW_CONSOLE
Definition: KERNEL32.h:107
constexpr auto DEBUG_ONLY_THIS_PROCESS
Definition: KERNEL32.h:104
std::uint32_t GetPrivateProfileStringA(const char *a_app, const char *a_key, const char *a_default, char *a_buf, std::uint32_t a_bufLen, const char *a_name) noexcept
std::uint32_t InterlockedCompareExchange(volatile std::uint32_t *a_target, std::uint32_t a_value, std::uint32_t a_compare) noexcept
constexpr auto LCMAP_LOWERCASE
Definition: KERNEL32.h:129
constexpr auto IMAGE_SIZEOF_SECTION_HEADER
Definition: KERNEL32.h:99
std::uint32_t GetPrivateProfileStringW(const wchar_t *a_app, const wchar_t *a_key, const wchar_t *a_default, wchar_t *a_buf, std::uint32_t a_bufLen, const wchar_t *a_name) noexcept
bool FindNextFileA(HANDLE a_file, WIN32_FIND_DATAA *a_data) noexcept
std::uint32_t(void *a_param) THREAD_START_ROUTINE
Definition: KERNEL32.h:423
constexpr auto PAGE_NOACCESS
Definition: KERNEL32.h:24
constexpr auto CREATE_NEW_PROCESS_GROUP
Definition: KERNEL32.h:112
constexpr auto REALTIME_PRIORITY_CLASS
Definition: KERNEL32.h:111
constexpr auto IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT
Definition: KERNEL32.h:86
HMODULE GetCurrentModule() noexcept
constexpr auto MEM_RESET
Definition: KERNEL32.h:20
constexpr auto FILE_MAP_READ
Definition: KERNEL32.h:54
constexpr auto IMAGE_DIRECTORY_ENTRY_BASERELOC
Definition: KERNEL32.h:78
constexpr auto GENERIC_WRITE
Definition: KERNEL32.h:62
bool SetEnvironmentVariableW(const wchar_t *a_name, const wchar_t *a_value) noexcept
constexpr auto LOCALE_NAME_USER_DEFAULT
Definition: KERNEL32.h:143
constexpr auto BELOW_NORMAL_PRIORITY_CLASS
Definition: KERNEL32.h:115
bool CloseHandle(HANDLE a_handle) noexcept
constexpr auto FILE_MAP_WRITE
Definition: KERNEL32.h:53
bool IMAGE_SNAP_BY_ORDINAL64(std::uint64_t a_ordinal) noexcept
void EnterCriticalSection(CRITICAL_SECTION *a_criticalSection)
bool IsDebuggerPresent() noexcept
constexpr auto CREATE_SUSPENDED
Definition: KERNEL32.h:105
constexpr auto LOCALE_NAME_SYSTEM_DEFAULT
Definition: KERNEL32.h:145
std::uint64_t InterlockedCompareExchange64(volatile std::uint64_t *a_target, std::uint64_t a_value, std::uint64_t a_compare) noexcept
constexpr auto DETACHED_PROCESS
Definition: KERNEL32.h:106
std::uint32_t InterlockedExchange(volatile std::uint32_t *a_target, std::uint32_t a_value) noexcept
constexpr auto FILE_MAP_COPY
Definition: KERNEL32.h:52
constexpr auto IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG
Definition: KERNEL32.h:83
constexpr auto FILE_MAP_RESERVE
Definition: KERNEL32.h:58
constexpr auto IMAGE_DIRECTORY_ENTRY_TLS
Definition: KERNEL32.h:82
std::uint64_t InterlockedExchange64(volatile std::uint64_t *a_target, std::uint64_t a_value) noexcept
constexpr auto LCMAP_UPPERCASE
Definition: KERNEL32.h:130
constexpr auto IMAGE_DIRECTORY_ENTRY_EXPORT
Definition: KERNEL32.h:73
HANDLE CreateSemaphoreA(SECURITY_ATTRIBUTES *a_semaphoreAttr, std::int32_t a_initCount, std::int32_t a_maxCount, const char *a_name)
constexpr auto LCMAP_LINGUISTIC_CASING
Definition: KERNEL32.h:138
constexpr auto IMAGE_DIRECTORY_ENTRY_SECURITY
Definition: KERNEL32.h:77
void GetSystemInfo(SYSTEM_INFO *a_info) noexcept
std::int32_t LCMapStringEx(const wchar_t *a_locale, std::uint32_t a_flags, const wchar_t *a_src, std::int32_t a_srcLen, wchar_t *a_dst, std::int32_t a_dstLen, NLSVERSIONINFO *a_info, void *a_reserved, std::intptr_t a_sortHandle) noexcept
constexpr auto IMAGE_DIRECTORY_ENTRY_IMPORT
Definition: KERNEL32.h:74
bool WriteProcessMemory(HANDLE a_process, void *a_address, const void *a_buf, std::size_t a_bufLen, std::size_t *a_bufWritten) noexcept
HANDLE CreateFileMappingA(HANDLE a_file, SECURITY_ATTRIBUTES *a_attributes, std::uint32_t a_protect, std::uint32_t a_maxSizeHigh, std::uint32_t a_maxSizeLow, const char *a_name) noexcept
constexpr auto IMAGE_DIRECTORY_ENTRY_IAT
Definition: KERNEL32.h:85
constexpr auto FILE_ATTRIBUTE_HIDDEN
Definition: KERNEL32.h:45
constexpr auto SECTION_ALL_ACCESS
Definition: KERNEL32.h:39
HMODULE LoadLibraryW(const wchar_t *a_name) noexcept
constexpr auto LCMAP_HALFWIDTH
Definition: KERNEL32.h:136
constexpr auto LCMAP_SIMPLIFIED_CHINESE
Definition: KERNEL32.h:139
HMODULE LoadLibraryA(const char *a_name) noexcept
bool FreeLibrary(HMODULE a_module) noexcept
std::uint64_t InterlockedDecrement64(volatile std::uint64_t *a_target) noexcept
constexpr auto IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT
Definition: KERNEL32.h:84
std::int32_t MultiByteToWideChar(std::uint32_t a_codePage, std::uint32_t a_flags, const char *a_src, std::int32_t a_srcLen, wchar_t *a_dst, std::int32_t a_dstLen) noexcept
constexpr auto CREATE_BREAKAWAY_FROM_JOB
Definition: KERNEL32.h:123
constexpr auto ABOVE_NORMAL_PRIORITY_CLASS
Definition: KERNEL32.h:116
constexpr auto IMAGE_SCN_MEM_READ
Definition: KERNEL32.h:97
constexpr auto IMAGE_DIRECTORY_ENTRY_EXCEPTION
Definition: KERNEL32.h:76
constexpr auto IMAGE_NT_OPTIONAL_HDR64_MAGIC
Definition: KERNEL32.h:70
constexpr auto HIGH_PRIORITY_CLASS
Definition: KERNEL32.h:110
constexpr auto SECTION_QUERY
Definition: KERNEL32.h:33
bool FindNextFileW(HANDLE a_file, WIN32_FIND_DATAW *a_data) noexcept
HMODULE GetModuleHandleA(const char *a_name) noexcept
std::uint32_t GetModuleFileNameA(HMODULE a_module, char *a_name, std::uint32_t a_nameLen) noexcept
constexpr auto LCMAP_HIRAGANA
Definition: KERNEL32.h:134
constexpr auto IMAGE_SCN_MEM_EXECUTE
Definition: KERNEL32.h:96
bool VirtualFree(void *a_address, std::size_t a_size, std::uint32_t a_type) noexcept
constexpr auto FILE_ATTRIBUTE_DIRECTORY
Definition: KERNEL32.h:47
constexpr auto MAX_PATH
Definition: BASE.h:34
void * MapViewOfFileEx(HANDLE a_object, std::uint32_t a_desiredAccess, std::uint32_t a_fileOffsetHi, std::uint32_t a_fileOffsetLo, std::size_t a_numBytes, void *a_baseAddr) noexcept
std::size_t VirtualQueryEx(HANDLE a_process, const void *a_address, MEMORY_BASIC_INFORMATION *a_buf, std::size_t a_bufLen) noexcept
constexpr auto IMAGE_DIRECTORY_ENTRY_RESOURCE
Definition: KERNEL32.h:75
constexpr auto IDLE_PRIORITY_CLASS
Definition: KERNEL32.h:109
std::uint64_t InterlockedIncrement64(volatile std::uint64_t *a_target) noexcept
constexpr auto CREATE_SECURE_PROCESS
Definition: KERNEL32.h:122
constexpr auto IMAGE_ORDINAL_FLAG64
Definition: KERNEL32.h:92
constexpr auto MEM_FREE
Definition: KERNEL32.h:19
std::uint32_t GetLastError() noexcept
std::uint32_t InterlockedIncrement(volatile std::uint32_t *a_target) noexcept
constexpr auto LCMAP_FULLWIDTH
Definition: KERNEL32.h:137
constexpr auto IMAGE_SIZEOF_SHORT_NAME
Definition: KERNEL32.h:100
constexpr auto LCMAP_SORTKEY
Definition: KERNEL32.h:132
constexpr auto IMAGE_SCN_MEM_WRITE
Definition: KERNEL32.h:98
bool VirtualProtectEx(HANDLE a_process, void *a_address, std::size_t a_size, std::uint32_t a_newProtect, std::uint32_t *a_oldProtect) noexcept
constexpr auto CREATE_PROTECTED_PROCESS
Definition: KERNEL32.h:118
constexpr auto LOCALE_NAME_INVARIANT
Definition: KERNEL32.h:144
constexpr auto PAGE_EXECUTE_READWRITE
Definition: KERNEL32.h:30
bool UnmapViewOfFile(const void *a_baseAddress) noexcept
bool VirtualProtect(void *a_address, std::size_t a_size, std::uint32_t a_newProtect, std::uint32_t *a_oldProtect) noexcept
constexpr auto GENERIC_ALL
Definition: KERNEL32.h:64
constexpr auto IMAGE_SCN_MEM_SHARED
Definition: KERNEL32.h:95
constexpr auto CREATE_FORCEDOS
Definition: KERNEL32.h:114
constexpr auto LCMAP_TITLECASE
Definition: KERNEL32.h:131
constexpr auto IMAGE_NUMBEROF_DIRECTORY_ENTRIES
Definition: KERNEL32.h:88
constexpr auto SECTION_MAP_WRITE
Definition: KERNEL32.h:34
constexpr auto FILE_MAP_ALL_ACCESS
Definition: KERNEL32.h:51
bool TlsSetValue(std::uint32_t a_index, void *a_value) noexcept
constexpr auto EXTENDED_STARTUPINFO_PRESENT
Definition: KERNEL32.h:119
constexpr auto SECTION_MAP_EXECUTE_EXPLICIT
Definition: KERNEL32.h:38
constexpr auto GENERIC_READ
Definition: KERNEL32.h:61
void * TlsGetValue(std::uint32_t a_index) noexcept
void * GetProcAddress(HMODULE a_module, const char *a_name) noexcept
constexpr auto CREATE_PRESERVE_CODE_AUTHZ_LEVEL
Definition: KERNEL32.h:124
bool InitializeCriticalSectionAndSpinCount(CRITICAL_SECTION *a_criticalSection, std::uint32_t a_spinCount)
constexpr auto PROCESS_MODE_BACKGROUND_BEGIN
Definition: KERNEL32.h:120
constexpr auto FILE_MAP_TARGETS_INVALID
Definition: KERNEL32.h:57
bool QueryPerformanceFrequency(std::int64_t *a_frequency) noexcept
bool FindClose(HANDLE a_file) noexcept
std::uint32_t GetCurrentThreadId() noexcept
bool QueryPerformanceCounter(std::int64_t *a_counter) noexcept
void * MapViewOfFile(HANDLE a_object, std::uint32_t a_desiredAccess, std::uint32_t a_fileOffsetHi, std::uint32_t a_fileOffsetLo, std::size_t a_numBytes) noexcept
constexpr auto MEM_RESERVE
Definition: KERNEL32.h:16
constexpr auto CREATE_NO_WINDOW
Definition: KERNEL32.h:126
bool CreateProcessW(const wchar_t *a_name, wchar_t *a_cmd, SECURITY_ATTRIBUTES *a_procAttr, SECURITY_ATTRIBUTES *a_threadAttr, bool a_inheritHandles, std::uint32_t a_flags, void *a_env, const wchar_t *a_curDir, STARTUPINFOW *a_startInfo, PROCESS_INFORMATION *a_procInfo) noexcept
constexpr auto PROCESS_MODE_BACKGROUND_END
Definition: KERNEL32.h:121
std::uint32_t WaitForSingleObjectEx(HANDLE a_handle, std::uint32_t a_milliseconds, bool a_alertable) noexcept
HINSTANCE HMODULE
Definition: BASE.h:24
constexpr auto STANDARD_RIGHTS_REQUIRED
Definition: KERNEL32.h:8
void * VirtualAllocEx(HANDLE a_process, void *a_address, std::size_t a_size, std::uint32_t a_type, std::uint32_t a_protect) noexcept
constexpr auto PAGE_READONLY
Definition: KERNEL32.h:25
constexpr auto LCMAP_BYTEREV
Definition: KERNEL32.h:133
HANDLE CreateRemoteThread(HANDLE a_process, SECURITY_ATTRIBUTES *a_threadAttr, std::size_t a_stackSize, THREAD_START_ROUTINE *a_startAddr, void *a_param, std::uint32_t a_flags, std::uint32_t *a_threadID) noexcept
std::uint32_t InterlockedDecrement(volatile std::uint32_t *a_target) noexcept
HANDLE CreateThread(SECURITY_ATTRIBUTES *a_threadAttr, std::size_t a_stackSize, THREAD_START_ROUTINE *a_startAddr, void *a_param, std::uint32_t a_flags, std::uint32_t *a_threadID) noexcept
std::uint32_t GetEnvironmentVariableA(const char *a_name, char *a_buf, std::uint32_t a_bufLen) noexcept
void DeleteCriticalSection(CRITICAL_SECTION *a_criticalSection)
HMODULE GetModuleHandleW(const wchar_t *a_name) noexcept
constexpr auto IMAGE_ORDINAL_FLAG32
Definition: KERNEL32.h:91
void * VirtualAlloc(void *a_address, std::size_t a_size, std::uint32_t a_type, std::uint32_t a_protect) noexcept
void OutputDebugStringW(const wchar_t *a_str) noexcept
constexpr auto GENERIC_EXECUTE
Definition: KERNEL32.h:63
HANDLE CreateFileMappingW(HANDLE a_file, SECURITY_ATTRIBUTES *a_attributes, std::uint32_t a_protect, std::uint32_t a_maxSizeHigh, std::uint32_t a_maxSizeLow, const wchar_t *a_name) noexcept
constexpr auto MEM_RELEASE
Definition: KERNEL32.h:18
std::uint32_t GetModuleFileNameW(HMODULE a_module, wchar_t *a_name, std::uint32_t a_nameLen) noexcept
constexpr auto IMAGE_DIRECTORY_ENTRY_ARCHITECTURE
Definition: KERNEL32.h:80
HANDLE FindFirstFileW(const wchar_t *a_name, WIN32_FIND_DATAW *a_data) noexcept
constexpr auto LCMAP_KATAKANA
Definition: KERNEL32.h:135
constexpr auto NORMAL_PRIORITY_CLASS
Definition: KERNEL32.h:108
constexpr auto DEBUG_PROCESS
Definition: KERNEL32.h:103
HANDLE GetCurrentProcess() noexcept
bool SetEnvironmentVariableA(const char *a_name, const char *a_value) noexcept
constexpr auto CREATE_DEFAULT_ERROR_MODE
Definition: KERNEL32.h:125
constexpr auto IMAGE_DOS_SIGNATURE
Definition: KERNEL32.h:67
constexpr auto FILE_MAP_LARGE_PAGES
Definition: KERNEL32.h:56
constexpr auto PAGE_EXECUTE
Definition: KERNEL32.h:28
std::uint32_t ExpandEnvironmentStrings(const char *a_src, char *a_dst, std::uint32_t a_dstLen) noexcept
std::uint32_t GetEnvironmentVariableW(const wchar_t *a_name, wchar_t *a_buf, std::uint32_t a_bufLen) noexcept
HANDLE OpenFileMappingA(std::uint32_t a_desiredAccess, bool a_inheritHandle, const char *a_name) noexcept
Definition: EffectArchetypes.h:65
Definition: BASE.h:137
Definition: BASE.h:40
Definition: BASE.h:62
Definition: KERNEL32.h:151
std::uint32_t size
Definition: KERNEL32.h:153
std::uint32_t virtualAddress
Definition: KERNEL32.h:152
Definition: KERNEL32.h:158
std::uint16_t ovno
Definition: KERNEL32.h:172
std::uint16_t res[4]
Definition: KERNEL32.h:173
std::uint16_t ss
Definition: KERNEL32.h:166
std::uint16_t res2[10]
Definition: KERNEL32.h:176
std::uint16_t sp
Definition: KERNEL32.h:167
std::uint16_t minalloc
Definition: KERNEL32.h:164
std::uint16_t cs
Definition: KERNEL32.h:170
std::uint16_t maxalloc
Definition: KERNEL32.h:165
std::int32_t lfanew
Definition: KERNEL32.h:177
std::uint16_t oemid
Definition: KERNEL32.h:174
std::uint16_t cblp
Definition: KERNEL32.h:160
std::uint16_t ip
Definition: KERNEL32.h:169
std::uint16_t magic
Definition: KERNEL32.h:159
std::uint16_t crlc
Definition: KERNEL32.h:162
std::uint16_t csum
Definition: KERNEL32.h:168
std::uint16_t oeminfo
Definition: KERNEL32.h:175
std::uint16_t lfarlc
Definition: KERNEL32.h:171
std::uint16_t cp
Definition: KERNEL32.h:161
std::uint16_t cparhdr
Definition: KERNEL32.h:163
Definition: KERNEL32.h:182
std::uint16_t characteristics
Definition: KERNEL32.h:189
std::uint32_t timeDateStamp
Definition: KERNEL32.h:185
std::uint32_t symbolCount
Definition: KERNEL32.h:187
std::uint16_t machine
Definition: KERNEL32.h:183
std::uint32_t symbolTablePtr
Definition: KERNEL32.h:186
std::uint16_t optionalHeaderSize
Definition: KERNEL32.h:188
std::uint16_t sectionCount
Definition: KERNEL32.h:184
Definition: KERNEL32.h:194
std::uint16_t hint
Definition: KERNEL32.h:195
char name[1]
Definition: KERNEL32.h:196
Definition: KERNEL32.h:201
std::uint32_t timeDateStamp
Definition: KERNEL32.h:208
std::uint32_t characteristics
Definition: KERNEL32.h:204
std::uint32_t firstThunkOriginal
Definition: KERNEL32.h:205
std::uint32_t name
Definition: KERNEL32.h:210
std::uint32_t forwarderChain
Definition: KERNEL32.h:209
std::uint32_t firstThunk
Definition: KERNEL32.h:211
Definition: KERNEL32.h:251
IMAGE_FILE_HEADER fileHeader
Definition: KERNEL32.h:253
IMAGE_OPTIONAL_HEADER64 optionalHeader
Definition: KERNEL32.h:254
std::uint32_t signature
Definition: KERNEL32.h:252
Definition: KERNEL32.h:216
std::uint64_t stackCommitSize
Definition: KERNEL32.h:241
std::uint32_t fileAlignment
Definition: KERNEL32.h:227
std::uint32_t win32Version
Definition: KERNEL32.h:234
std::uint16_t imageVersionMajor
Definition: KERNEL32.h:230
std::uint16_t imageVersionMinor
Definition: KERNEL32.h:231
std::uint32_t rvaAndSizesCount
Definition: KERNEL32.h:245
std::uint32_t checksum
Definition: KERNEL32.h:237
std::uint16_t subsystemVersionMinor
Definition: KERNEL32.h:233
std::uint32_t initializedDataSize
Definition: KERNEL32.h:221
std::uint32_t loaderFlags
Definition: KERNEL32.h:244
std::uint8_t linkerVersionMajor
Definition: KERNEL32.h:218
std::uint16_t osVersionMinor
Definition: KERNEL32.h:229
std::uint8_t linkerVersionMinor
Definition: KERNEL32.h:219
std::uint64_t stackReserveSize
Definition: KERNEL32.h:240
std::uint16_t subsystem
Definition: KERNEL32.h:238
std::uint32_t headersSize
Definition: KERNEL32.h:236
std::uint64_t heapReserveSize
Definition: KERNEL32.h:242
std::uint32_t imageSize
Definition: KERNEL32.h:235
IMAGE_DATA_DIRECTORY dataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]
Definition: KERNEL32.h:246
std::uint16_t osVersionMajor
Definition: KERNEL32.h:228
std::uint16_t magic
Definition: KERNEL32.h:217
std::uint32_t sectionAlignment
Definition: KERNEL32.h:226
std::uint32_t entryPointAddress
Definition: KERNEL32.h:223
std::uint32_t uninitializedDataSize
Definition: KERNEL32.h:222
std::uint64_t heapCommitSize
Definition: KERNEL32.h:243
std::uint16_t subsystemVersionMajor
Definition: KERNEL32.h:232
std::uint64_t imageBase
Definition: KERNEL32.h:225
std::uint16_t dllCharacteristics
Definition: KERNEL32.h:239
std::uint32_t codeBase
Definition: KERNEL32.h:224
std::uint32_t codeSize
Definition: KERNEL32.h:220
Definition: KERNEL32.h:259
std::uint8_t name[IMAGE_SIZEOF_SHORT_NAME]
Definition: KERNEL32.h:260
std::uint32_t physicalAddress
Definition: KERNEL32.h:263
std::uint32_t virtualAddress
Definition: KERNEL32.h:266
std::uint32_t rawDataSize
Definition: KERNEL32.h:267
std::uint32_t characteristics
Definition: KERNEL32.h:273
std::uint32_t rawDataPtr
Definition: KERNEL32.h:268
std::uint32_t relocationsPtr
Definition: KERNEL32.h:269
std::uint32_t lineNumbersPtr
Definition: KERNEL32.h:270
std::uint16_t lineNumbersCount
Definition: KERNEL32.h:272
std::uint32_t virtualSize
Definition: KERNEL32.h:264
std::uint16_t relocationsCount
Definition: KERNEL32.h:271
Definition: KERNEL32.h:278
std::uint64_t forwarderString
Definition: KERNEL32.h:281
std::uint64_t address
Definition: KERNEL32.h:284
std::uint64_t ordinal
Definition: KERNEL32.h:283
Definition: KERNEL32.h:290
std::uint32_t state
Definition: KERNEL32.h:296
std::uint16_t partitionID
Definition: KERNEL32.h:294
std::uint32_t protect
Definition: KERNEL32.h:297
std::size_t regionSize
Definition: KERNEL32.h:295
std::uint32_t type
Definition: KERNEL32.h:298
std::uint32_t allocationProtect
Definition: KERNEL32.h:293
void * baseAddress
Definition: KERNEL32.h:291
void * allocationBase
Definition: KERNEL32.h:292
Definition: KERNEL32.h:303
std::uint32_t nlsVersion
Definition: KERNEL32.h:305
std::uint32_t effectiveID
Definition: KERNEL32.h:307
std::uint32_t nlsVersionInfoSize
Definition: KERNEL32.h:304
std::uint32_t definedVersion
Definition: KERNEL32.h:306
GUID guidCustomVersion
Definition: KERNEL32.h:308
Definition: KERNEL32.h:313
std::uint32_t processID
Definition: KERNEL32.h:316
void * thread
Definition: KERNEL32.h:315
std::uint32_t threadID
Definition: KERNEL32.h:317
void * process
Definition: KERNEL32.h:314
Definition: BASE.h:148
Definition: KERNEL32.h:322
std::uint32_t size
Definition: KERNEL32.h:323
std::uint32_t ySize
Definition: KERNEL32.h:330
std::uint32_t fillAttribute
Definition: KERNEL32.h:333
char * title
Definition: KERNEL32.h:326
std::uint16_t reserved1
Definition: KERNEL32.h:336
void * stdErr
Definition: KERNEL32.h:340
std::uint32_t x
Definition: KERNEL32.h:327
std::uint16_t showWindow
Definition: KERNEL32.h:335
void * stdOut
Definition: KERNEL32.h:339
std::uint32_t flags
Definition: KERNEL32.h:334
char * desktop
Definition: KERNEL32.h:325
char * reserved0
Definition: KERNEL32.h:324
void * stdIn
Definition: KERNEL32.h:338
std::uint8_t * reserved2
Definition: KERNEL32.h:337
std::uint32_t xSize
Definition: KERNEL32.h:329
std::uint32_t xCountChars
Definition: KERNEL32.h:331
std::uint32_t y
Definition: KERNEL32.h:328
std::uint32_t yCountChars
Definition: KERNEL32.h:332
Definition: KERNEL32.h:345
std::uint32_t size
Definition: KERNEL32.h:346
std::uint32_t x
Definition: KERNEL32.h:350
std::uint32_t fillAttribute
Definition: KERNEL32.h:356
std::uint32_t y
Definition: KERNEL32.h:351
std::uint8_t * reserved2
Definition: KERNEL32.h:360
std::uint32_t flags
Definition: KERNEL32.h:357
wchar_t * reserved0
Definition: KERNEL32.h:347
void * stdErr
Definition: KERNEL32.h:363
std::uint32_t xCountChars
Definition: KERNEL32.h:354
std::uint32_t ySize
Definition: KERNEL32.h:353
wchar_t * title
Definition: KERNEL32.h:349
std::uint32_t yCountChars
Definition: KERNEL32.h:355
std::uint32_t xSize
Definition: KERNEL32.h:352
std::uint16_t reserved1
Definition: KERNEL32.h:359
void * stdOut
Definition: KERNEL32.h:362
void * stdIn
Definition: KERNEL32.h:361
std::uint16_t showWindow
Definition: KERNEL32.h:358
wchar_t * desktop
Definition: KERNEL32.h:348
Definition: KERNEL32.h:368
void * appAddressMax
Definition: KERNEL32.h:380
std::uint16_t reserved
Definition: KERNEL32.h:375
void * appAddressMin
Definition: KERNEL32.h:379
std::uint32_t processorCount
Definition: KERNEL32.h:382
std::uint32_t processorType
Definition: KERNEL32.h:383
std::uint32_t pageSize
Definition: KERNEL32.h:378
std::uint32_t allocationGranularity
Definition: KERNEL32.h:384
std::uint16_t processorArch
Definition: KERNEL32.h:374
std::uint16_t processorRevision
Definition: KERNEL32.h:386
std::uint16_t processorLevel
Definition: KERNEL32.h:385
std::uintptr_t processorActiveMask
Definition: KERNEL32.h:381
std::uint32_t oemID
Definition: KERNEL32.h:371
Definition: KERNEL32.h:391
FILETIME lastWriteTime
Definition: KERNEL32.h:395
FILETIME lastAccessTime
Definition: KERNEL32.h:394
FILETIME creationTime
Definition: KERNEL32.h:393
char fileNameAlt[14]
Definition: KERNEL32.h:401
std::uint32_t fileSizeHi
Definition: KERNEL32.h:396
std::uint32_t fileAttributes
Definition: KERNEL32.h:392
std::uint32_t reserved0
Definition: KERNEL32.h:398
char fileName[MAX_PATH]
Definition: KERNEL32.h:400
std::uint32_t reserved1
Definition: KERNEL32.h:399
std::uint32_t fileSizeLo
Definition: KERNEL32.h:397
Definition: KERNEL32.h:406
FILETIME lastWriteTime
Definition: KERNEL32.h:410
std::uint32_t fileSizeLo
Definition: KERNEL32.h:412
std::uint32_t fileAttributes
Definition: KERNEL32.h:407
FILETIME lastAccessTime
Definition: KERNEL32.h:409
wchar_t fileNameAlt[14]
Definition: KERNEL32.h:416
wchar_t fileName[MAX_PATH]
Definition: KERNEL32.h:415
std::uint32_t reserved1
Definition: KERNEL32.h:414
std::uint32_t fileSizeHi
Definition: KERNEL32.h:411
std::uint32_t reserved0
Definition: KERNEL32.h:413
FILETIME creationTime
Definition: KERNEL32.h:408