mirror of
https://github.com/decompals/wibo.git
synced 2025-10-15 14:45:12 +00:00
109 lines
3.6 KiB
C++
109 lines
3.6 KiB
C++
#pragma once
|
|
|
|
#include "common.h"
|
|
#include "errors.h"
|
|
#include "minwinbase.h"
|
|
|
|
struct PROCESS_INFORMATION {
|
|
HANDLE hProcess;
|
|
HANDLE hThread;
|
|
DWORD dwProcessId;
|
|
DWORD dwThreadId;
|
|
};
|
|
|
|
using PPROCESS_INFORMATION = PROCESS_INFORMATION *;
|
|
using LPPROCESS_INFORMATION = PROCESS_INFORMATION *;
|
|
|
|
struct STARTUPINFOA {
|
|
DWORD cb;
|
|
LPSTR lpReserved;
|
|
LPSTR lpDesktop;
|
|
LPSTR lpTitle;
|
|
DWORD dwX;
|
|
DWORD dwY;
|
|
DWORD dwXSize;
|
|
DWORD dwYSize;
|
|
DWORD dwXCountChars;
|
|
DWORD dwYCountChars;
|
|
DWORD dwFillAttribute;
|
|
DWORD dwFlags;
|
|
WORD wShowWindow;
|
|
WORD cbReserved2;
|
|
unsigned char *lpReserved2;
|
|
HANDLE hStdInput;
|
|
HANDLE hStdOutput;
|
|
HANDLE hStdError;
|
|
};
|
|
|
|
using LPSTARTUPINFOA = STARTUPINFOA *;
|
|
|
|
struct STARTUPINFOW {
|
|
DWORD cb;
|
|
LPWSTR lpReserved;
|
|
LPWSTR lpDesktop;
|
|
LPWSTR lpTitle;
|
|
DWORD dwX;
|
|
DWORD dwY;
|
|
DWORD dwXSize;
|
|
DWORD dwYSize;
|
|
DWORD dwXCountChars;
|
|
DWORD dwYCountChars;
|
|
DWORD dwFillAttribute;
|
|
DWORD dwFlags;
|
|
WORD wShowWindow;
|
|
WORD cbReserved2;
|
|
unsigned char *lpReserved2;
|
|
HANDLE hStdInput;
|
|
HANDLE hStdOutput;
|
|
HANDLE hStdError;
|
|
};
|
|
|
|
using LPSTARTUPINFOW = STARTUPINFOW *;
|
|
|
|
constexpr DWORD TLS_OUT_OF_INDEXES = 0xFFFFFFFFu;
|
|
|
|
typedef DWORD(WIN_FUNC *LPTHREAD_START_ROUTINE)(LPVOID);
|
|
|
|
namespace kernel32 {
|
|
|
|
HANDLE WIN_FUNC GetCurrentProcess();
|
|
DWORD WIN_FUNC GetCurrentProcessId();
|
|
DWORD WIN_FUNC GetCurrentThreadId();
|
|
HANDLE WIN_FUNC GetCurrentThread();
|
|
BOOL WIN_FUNC IsProcessorFeaturePresent(DWORD ProcessorFeature);
|
|
BOOL WIN_FUNC GetProcessAffinityMask(HANDLE hProcess, PDWORD_PTR lpProcessAffinityMask,
|
|
PDWORD_PTR lpSystemAffinityMask);
|
|
BOOL WIN_FUNC SetProcessAffinityMask(HANDLE hProcess, DWORD_PTR dwProcessAffinityMask);
|
|
DWORD_PTR WIN_FUNC SetThreadAffinityMask(HANDLE hThread, DWORD_PTR dwThreadAffinityMask);
|
|
DWORD WIN_FUNC ResumeThread(HANDLE hThread);
|
|
HRESULT WIN_FUNC SetThreadDescription(HANDLE hThread, LPCWSTR lpThreadDescription);
|
|
void WIN_FUNC ExitProcess(UINT uExitCode);
|
|
BOOL WIN_FUNC TerminateProcess(HANDLE hProcess, UINT uExitCode);
|
|
BOOL WIN_FUNC GetExitCodeProcess(HANDLE hProcess, LPDWORD lpExitCode);
|
|
DWORD WIN_FUNC TlsAlloc();
|
|
BOOL WIN_FUNC TlsFree(DWORD dwTlsIndex);
|
|
LPVOID WIN_FUNC TlsGetValue(DWORD dwTlsIndex);
|
|
BOOL WIN_FUNC TlsSetValue(DWORD dwTlsIndex, LPVOID lpTlsValue);
|
|
HANDLE WIN_FUNC CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes, SIZE_T dwStackSize,
|
|
LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags,
|
|
LPDWORD lpThreadId);
|
|
void WIN_FUNC ExitThread(DWORD dwExitCode);
|
|
BOOL WIN_FUNC GetExitCodeThread(HANDLE hThread, LPDWORD lpExitCode);
|
|
BOOL WIN_FUNC SetThreadPriority(HANDLE hThread, int nPriority);
|
|
int WIN_FUNC GetThreadPriority(HANDLE hThread);
|
|
BOOL WIN_FUNC GetThreadTimes(HANDLE hThread, FILETIME *lpCreationTime, FILETIME *lpExitTime, FILETIME *lpKernelTime,
|
|
FILETIME *lpUserTime);
|
|
BOOL WIN_FUNC CreateProcessA(LPCSTR lpApplicationName, LPSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes,
|
|
LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags,
|
|
LPVOID lpEnvironment, LPCSTR lpCurrentDirectory, LPSTARTUPINFOA lpStartupInfo,
|
|
LPPROCESS_INFORMATION lpProcessInformation);
|
|
BOOL WIN_FUNC CreateProcessW(LPCWSTR lpApplicationName, LPWSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes,
|
|
LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags,
|
|
LPVOID lpEnvironment, LPCWSTR lpCurrentDirectory, LPSTARTUPINFOW lpStartupInfo,
|
|
LPPROCESS_INFORMATION lpProcessInformation);
|
|
void WIN_FUNC GetStartupInfoA(LPSTARTUPINFOA lpStartupInfo);
|
|
void WIN_FUNC GetStartupInfoW(LPSTARTUPINFOW lpStartupInfo);
|
|
BOOL WIN_FUNC SetThreadStackGuarantee(PULONG StackSizeInBytes);
|
|
|
|
} // namespace kernel32
|