mirror of
https://github.com/decompals/wibo.git
synced 2025-12-12 06:45:05 +00:00
109 lines
3.7 KiB
C++
109 lines
3.7 KiB
C++
#pragma once
|
|
|
|
#include "minwinbase.h"
|
|
#include "types.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;
|
|
LPBYTE 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;
|
|
LPBYTE lpReserved2;
|
|
HANDLE hStdInput;
|
|
HANDLE hStdOutput;
|
|
HANDLE hStdError;
|
|
};
|
|
|
|
using LPSTARTUPINFOW = STARTUPINFOW *;
|
|
|
|
constexpr DWORD TLS_OUT_OF_INDEXES = 0xFFFFFFFFu;
|
|
constexpr DWORD NORMAL_PRIORITY_CLASS = 0x00000020;
|
|
|
|
typedef DWORD(WIN_FUNC *LPTHREAD_START_ROUTINE)(LPVOID);
|
|
|
|
namespace kernel32 {
|
|
|
|
HANDLE WINAPI GetCurrentProcess();
|
|
DWORD WINAPI GetCurrentProcessId();
|
|
DWORD WINAPI GetCurrentThreadId();
|
|
HANDLE WINAPI GetCurrentThread();
|
|
BOOL WINAPI IsProcessorFeaturePresent(DWORD ProcessorFeature);
|
|
BOOL WINAPI GetProcessAffinityMask(HANDLE hProcess, PDWORD_PTR lpProcessAffinityMask, PDWORD_PTR lpSystemAffinityMask);
|
|
BOOL WINAPI SetProcessAffinityMask(HANDLE hProcess, DWORD_PTR dwProcessAffinityMask);
|
|
DWORD_PTR WINAPI SetThreadAffinityMask(HANDLE hThread, DWORD_PTR dwThreadAffinityMask);
|
|
DWORD WINAPI ResumeThread(HANDLE hThread);
|
|
HRESULT WINAPI SetThreadDescription(HANDLE hThread, LPCWSTR lpThreadDescription);
|
|
void WINAPI ExitProcess(UINT uExitCode);
|
|
BOOL WINAPI TerminateProcess(HANDLE hProcess, UINT uExitCode);
|
|
BOOL WINAPI GetExitCodeProcess(HANDLE hProcess, LPDWORD lpExitCode);
|
|
DWORD WINAPI TlsAlloc();
|
|
BOOL WINAPI TlsFree(DWORD dwTlsIndex);
|
|
LPVOID WINAPI TlsGetValue(DWORD dwTlsIndex);
|
|
BOOL WINAPI TlsSetValue(DWORD dwTlsIndex, LPVOID lpTlsValue);
|
|
HANDLE WINAPI CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes, SIZE_T dwStackSize,
|
|
LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags,
|
|
LPDWORD lpThreadId);
|
|
[[noreturn]] void WINAPI ExitThread(DWORD dwExitCode);
|
|
BOOL WINAPI GetExitCodeThread(HANDLE hThread, LPDWORD lpExitCode);
|
|
BOOL WINAPI SetThreadPriority(HANDLE hThread, int nPriority);
|
|
int WINAPI GetThreadPriority(HANDLE hThread);
|
|
DWORD WINAPI GetPriorityClass(HANDLE hProcess);
|
|
BOOL WINAPI GetThreadTimes(HANDLE hThread, FILETIME *lpCreationTime, FILETIME *lpExitTime, FILETIME *lpKernelTime,
|
|
FILETIME *lpUserTime);
|
|
BOOL WINAPI 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 WINAPI 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 WINAPI GetStartupInfoA(LPSTARTUPINFOA lpStartupInfo);
|
|
void WINAPI GetStartupInfoW(LPSTARTUPINFOW lpStartupInfo);
|
|
BOOL WINAPI SetThreadStackGuarantee(PULONG StackSizeInBytes);
|
|
|
|
} // namespace kernel32
|