reactos/sdk/include/psdk/processthreadsapi.h
2025-08-03 10:37:24 +03:00

148 lines
3 KiB
C

/*
* PROJECT: ReactOS SDK
* LICENSE: MIT (https://spdx.org/licenses/MIT)
* PURPOSE: API definitions for api-ms-win-core-processthreads-l1
* COPYRIGHT: Copyright 2024 Timo Kreuzer (timo.kreuzer@reactos.org)
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
typedef 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;
PBYTE lpReserved2;
HANDLE hStdInput;
HANDLE hStdOutput;
HANDLE hStdError;
} STARTUPINFOA, *LPSTARTUPINFOA;
typedef 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;
PBYTE lpReserved2;
HANDLE hStdInput;
HANDLE hStdOutput;
HANDLE hStdError;
} STARTUPINFOW,*LPSTARTUPINFOW;
#ifdef UNICODE
typedef STARTUPINFOW STARTUPINFO, *LPSTARTUPINFO;
#else
typedef STARTUPINFOA STARTUPINFO, *LPSTARTUPINFO;
#endif // UNICODE
typedef struct _PROCESS_INFORMATION
{
HANDLE hProcess;
HANDLE hThread;
DWORD dwProcessId;
DWORD dwThreadId;
} PROCESS_INFORMATION,*PPROCESS_INFORMATION,*LPPROCESS_INFORMATION;
typedef struct _PROC_THREAD_ATTRIBUTE_LIST *PPROC_THREAD_ATTRIBUTE_LIST, *LPPROC_THREAD_ATTRIBUTE_LIST;
WINBASEAPI
BOOL
WINAPI
SetThreadStackGuarantee(
_Inout_ PULONG StackSizeInBytes);
#if (_WIN32_WINNT >= 0x0600)
WINBASEAPI
VOID
WINAPI
FlushProcessWriteBuffers(
VOID);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
InitializeProcThreadAttributeList(
_Out_writes_bytes_to_opt_(*lpSize,*lpSize) LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList,
_In_ DWORD dwAttributeCount,
_Reserved_ DWORD dwFlags,
_When_(lpAttributeList == nullptr,_Out_) _When_(lpAttributeList != nullptr,_Inout_) PSIZE_T lpSize);
WINBASEAPI
BOOL
WINAPI
UpdateProcThreadAttribute(
_Inout_ LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList,
_In_ DWORD dwFlags,
_In_ DWORD_PTR Attribute,
_In_reads_bytes_opt_(cbSize) PVOID lpValue,
_In_ SIZE_T cbSize,
_Out_writes_bytes_opt_(cbSize) PVOID lpPreviousValue,
_In_opt_ PSIZE_T lpReturnSize);
WINBASEAPI
VOID
WINAPI
DeleteProcThreadAttributeList(
_Inout_ LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList);
#endif // (_WIN32_WINNT >= 0x0600) || defined(__REACTOS__)
#if (_WIN32_WINNT >= 0x602) || defined(__REACTOS__)
FORCEINLINE
HANDLE
GetCurrentProcessToken(
VOID)
{
return (HANDLE)(LONG_PTR)-4;
}
FORCEINLINE
HANDLE
GetCurrentThreadToken(
VOID)
{
return (HANDLE)(LONG_PTR)-5;
}
FORCEINLINE
HANDLE
GetCurrentThreadEffectiveToken(
VOID)
{
return (HANDLE)(LONG_PTR)-6;
}
#endif // (_WIN32_WINNT >= 0x602) || defined(__REACTOS__)
#ifdef __cplusplus
} // extern "C"
#endif