mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-05 15:18:49 +00:00
[core/windows]: Bind tlhelp.h functions from kernel32.dll
This commit is contained in:
@@ -0,0 +1,101 @@
|
|||||||
|
//+build windows
|
||||||
|
package sys_windows
|
||||||
|
|
||||||
|
foreign import kernel32 "system:Kernel32.lib"
|
||||||
|
|
||||||
|
@(default_calling_convention="system")
|
||||||
|
foreign kernel32 {
|
||||||
|
CreateToolhelp32Snapshot :: proc (dwFlags: DWORD, th32ProcessID: DWORD) -> HANDLE ---
|
||||||
|
Process32FirstW :: proc (hSnapshot: HANDLE, lppe: LPPROCESSENTRY32W) -> BOOL ---
|
||||||
|
Process32NextW :: proc (hSnapshot: HANDLE, lppe: LPPROCESSENTRY32W) -> BOOL ---
|
||||||
|
Thread32First :: proc (hSnapshot: HANDLE, lpte: LPTHREADENTRY32) -> BOOL ---
|
||||||
|
Thread32Next :: proc (hSnapshot: HANDLE, lpte: LPTHREADENTRY32) -> BOOL ---
|
||||||
|
Module32FirstW :: proc (hSnapshot: HANDLE, lpme: LPMODULEENTRY32W) -> BOOL ---
|
||||||
|
Module32NextW :: proc (hSnapshot: HANDLE, lpme: LPMODULEENTRY32W) -> BOOL ---
|
||||||
|
Heap32ListFirst :: proc (hSnapshot: HANDLE, lphl: LPHEAPLIST32) -> BOOL ---
|
||||||
|
Heap32ListNext :: proc (hSnapshot: HANDLE, lphl: LPHEAPLIST32) -> BOOL ---
|
||||||
|
Heap32First :: proc (lphe: LPHEAPENTRY32, th32ProcessID: DWORD, th32HeapID: ULONG_PTR) -> BOOL ---
|
||||||
|
Heap32Next :: proc (lphe: LPHEAPENTRY32) -> BOOL ---
|
||||||
|
Toolhelp32ReadProcessMemory :: proc (
|
||||||
|
th32ProcessID: DWORD,
|
||||||
|
lpBaseAddress: LPCVOID,
|
||||||
|
lpBuffer: LPVOID,
|
||||||
|
cbRead: SIZE_T,
|
||||||
|
lpNumberOfBytesRead: ^SIZE_T,
|
||||||
|
) -> BOOL ---
|
||||||
|
}
|
||||||
|
|
||||||
|
MAX_MODULE_NAME32 :: 255
|
||||||
|
|
||||||
|
TH32CS_INHERIT :: 0x80000000
|
||||||
|
TH32CS_SNAPHEAPLIST :: 0x00000001
|
||||||
|
TH32CS_SNAPPROCESS :: 0x00000001
|
||||||
|
TH32CS_SNAPTHREAD :: 0x00000004
|
||||||
|
TH32CS_SNAPMODULE :: 0x00000008
|
||||||
|
TH32CS_SNAPMODULE32 :: 0x00000010
|
||||||
|
TH32CS_SNAPALL :: TH32CS_SNAPHEAPLIST | TH32CS_SNAPPROCESS | TH32CS_SNAPTHREAD | TH32CS_SNAPMODULE
|
||||||
|
|
||||||
|
PROCESSENTRY32W :: struct {
|
||||||
|
dwSize: DWORD,
|
||||||
|
cntUsage: DWORD,
|
||||||
|
th32ProcessID: DWORD,
|
||||||
|
th32DefaultHeapID: ULONG_PTR,
|
||||||
|
th32ModuleID: DWORD,
|
||||||
|
cntThreads: DWORD,
|
||||||
|
th32ParentProcessID: DWORD,
|
||||||
|
pcPriClassBase: LONG,
|
||||||
|
dwFlags: DWORD,
|
||||||
|
szExeFile: [MAX_PATH]WCHAR,
|
||||||
|
}
|
||||||
|
|
||||||
|
LPPROCESSENTRY32W :: ^PROCESSENTRY32W
|
||||||
|
|
||||||
|
THREADENTRY32 :: struct {
|
||||||
|
dwSize: DWORD,
|
||||||
|
cntUsage: DWORD,
|
||||||
|
th32ThreadID: DWORD,
|
||||||
|
th32OwnerProcessID: DWORD,
|
||||||
|
tpBasePri: LONG,
|
||||||
|
tpDeltaPri: LONG,
|
||||||
|
dwFlags: DWORD,
|
||||||
|
}
|
||||||
|
|
||||||
|
LPTHREADENTRY32 :: ^THREADENTRY32
|
||||||
|
|
||||||
|
MODULEENTRY32W :: struct {
|
||||||
|
dwSize: DWORD,
|
||||||
|
th32ModuleID: DWORD,
|
||||||
|
th32ProcessID: DWORD,
|
||||||
|
GlblcntUsage: DWORD,
|
||||||
|
ProccntUsage: DWORD,
|
||||||
|
modBaseAddr: BYTE,
|
||||||
|
modBaseSize: DWORD,
|
||||||
|
hModule: HMODULE,
|
||||||
|
szModule: [MAX_MODULE_NAME32 + 1]WCHAR,
|
||||||
|
szExePath: [MAX_PATH]WCHAR,
|
||||||
|
}
|
||||||
|
|
||||||
|
LPMODULEENTRY32W :: ^MODULEENTRY32W
|
||||||
|
|
||||||
|
HEAPLIST32 :: struct {
|
||||||
|
dwSize: SIZE_T,
|
||||||
|
th32ProcessID: DWORD,
|
||||||
|
th32HeapID: ULONG_PTR,
|
||||||
|
dwFlags: DWORD,
|
||||||
|
}
|
||||||
|
|
||||||
|
LPHEAPLIST32 :: ^HEAPLIST32
|
||||||
|
|
||||||
|
HEAPENTRY32 :: struct {
|
||||||
|
dwSize: SIZE_T,
|
||||||
|
hHandle: HANDLE,
|
||||||
|
dwAddress: ULONG_PTR,
|
||||||
|
dwBlockSize: SIZE_T,
|
||||||
|
dwFlags: DWORD,
|
||||||
|
dwLockCount: DWORD,
|
||||||
|
dwResvd: DWORD,
|
||||||
|
th32ProcessID: DWORD,
|
||||||
|
th32HeapID: ULONG_PTR,
|
||||||
|
}
|
||||||
|
|
||||||
|
LPHEAPENTRY32 :: ^HEAPENTRY32
|
||||||
Reference in New Issue
Block a user