aboutsummaryrefslogtreecommitdiff
path: root/core/sys/windows/kernel32.odin
diff options
context:
space:
mode:
authorflysand7 <thebumboni@gmail.com>2024-07-12 18:04:39 +1100
committerflysand7 <thebumboni@gmail.com>2024-07-12 19:21:44 +1100
commit6ae47c6f439d92b984697a484bfedf18b1123f3b (patch)
tree2dcaa24c084cca047130ca44c038ea776f694346 /core/sys/windows/kernel32.odin
parent1770e3a9a97620125f6333db7678dd4ec34fa329 (diff)
[sys/windows] Add advapi bindings, process-related functions and context-related stuff
Diffstat (limited to 'core/sys/windows/kernel32.odin')
-rwxr-xr-xcore/sys/windows/kernel32.odin45
1 files changed, 45 insertions, 0 deletions
diff --git a/core/sys/windows/kernel32.odin b/core/sys/windows/kernel32.odin
index a29dde7b5..92d561c30 100755
--- a/core/sys/windows/kernel32.odin
+++ b/core/sys/windows/kernel32.odin
@@ -233,6 +233,12 @@ foreign kernel32 {
QueryPerformanceCounter :: proc(lpPerformanceCount: ^LARGE_INTEGER) -> BOOL ---
GetExitCodeProcess :: proc(hProcess: HANDLE, lpExitCode: LPDWORD) -> BOOL ---
TerminateProcess :: proc(hProcess: HANDLE, uExitCode: UINT) -> BOOL ---
+ OpenProcess :: proc(dwDesiredAccess: DWORD, bInheritHandle: BOOL, dwProcessId: DWORD) -> HANDLE ---
+ OpenThread :: proc(dwDesiredAccess: DWORD, bInheritHandle: BOOL, dwThreadId: DWORD) -> HANDLE ---
+ GetThreadContext :: proc(
+ hThread: HANDLE,
+ lpContext: LPCONTEXT,
+ ) -> BOOL ---
CreateProcessW :: proc(
lpApplicationName: LPCWSTR,
lpCommandLine: LPWSTR,
@@ -543,6 +549,45 @@ THREAD_PRIORITY_IDLE :: THREAD_BASE_PRIORITY_IDLE
THREAD_MODE_BACKGROUND_BEGIN :: 0x00010000
THREAD_MODE_BACKGROUND_END :: 0x00020000
+PROCESS_ALL_ACCESS :: 0x000F0000 | SYNCHRONIZE | 0xFFFF
+PROCESS_CREATE_PROCESS :: 0x0080
+PROCESS_CREATE_THREAD :: 0x0002
+PROCESS_DUP_HANDLE :: 0x0040
+PROCESS_QUERY_INFORMATION :: 0x0400
+PROCESS_QUERY_LIMITED_INFORMATION :: 0x1000
+PROCESS_SET_INFORMATION :: 0x0200
+PROCESS_SET_QUOTA :: 0x0100
+PROCESS_SUSPEND_RESUME :: 0x0800
+PROCESS_TERMINATE :: 0x0001
+PROCESS_VM_OPERATION :: 0x0008
+PROCESS_VM_READ :: 0x0010
+PROCESS_VM_WRITE :: 0x0020
+
+THREAD_ALL_ACCESS :: \
+ THREAD_DIRECT_IMPERSONATION |
+ THREAD_GET_CONTEXT |
+ THREAD_IMPERSONATE |
+ THREAD_QUERY_INFORMATION |
+ THREAD_QUERY_LIMITED_INFORMATION |
+ THREAD_SET_CONTEXT |
+ THREAD_SET_INFORMATION |
+ THREAD_SET_LIMITED_INFORMATION |
+ THREAD_SET_THREAD_TOKEN |
+ THREAD_SUSPEND_RESUME |
+ THREAD_TERMINATE |
+ SYNCHRONIZE
+THREAD_DIRECT_IMPERSONATION :: 0x0200
+THREAD_GET_CONTEXT :: 0x0008
+THREAD_IMPERSONATE :: 0x0100
+THREAD_QUERY_INFORMATION :: 0x0040
+THREAD_QUERY_LIMITED_INFORMATION :: 0x0800
+THREAD_SET_CONTEXT :: 0x0010
+THREAD_SET_INFORMATION :: 0x0020
+THREAD_SET_LIMITED_INFORMATION :: 0x0400
+THREAD_SET_THREAD_TOKEN :: 0x0080
+THREAD_SUSPEND_RESUME :: 0x0002
+THREAD_TERMINATE :: 0x0001
+
COPY_FILE_FAIL_IF_EXISTS :: 0x00000001
COPY_FILE_RESTARTABLE :: 0x00000002
COPY_FILE_OPEN_SOURCE_FOR_WRITE :: 0x00000004