mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-08-27 03:43:36 +00:00
194 lines
4.2 KiB
C
194 lines
4.2 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 ([email protected])
|
|
*/
|
|
|
|
#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
|
|
HRESULT
|
|
WINAPI
|
|
GetThreadDescription(
|
|
_In_ HANDLE hThread,
|
|
_Outptr_result_z_ PWSTR* ppszThreadDescription);
|
|
|
|
WINBASEAPI
|
|
HRESULT
|
|
WINAPI
|
|
SetThreadDescription(
|
|
_In_ HANDLE hThread,
|
|
_In_ PCWSTR lpThreadDescription);
|
|
|
|
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__)
|
|
|
|
typedef enum _PROCESS_INFORMATION_CLASS
|
|
{
|
|
ProcessMemoryPriority,
|
|
ProcessMemoryExhaustionInfo,
|
|
ProcessAppMemoryInfo,
|
|
ProcessInPrivateInfo,
|
|
ProcessPowerThrottling,
|
|
ProcessReservedValue1, // Formerly ProcessActivityThrottlePolicyInfo
|
|
ProcessTelemetryCoverageInfo,
|
|
ProcessProtectionLevelInfo,
|
|
ProcessLeapSecondInfo,
|
|
ProcessMachineTypeInfo,
|
|
ProcessOverrideSubsequentPrefetchParameter,
|
|
ProcessMaxOverridePrefetchParameter,
|
|
ProcessInformationClassMax
|
|
} PROCESS_INFORMATION_CLASS;
|
|
|
|
#define PROCESS_MACHINE_ATTRIBUTE_KERNEL_ENABLED 0x00000001
|
|
#define PROCESS_MACHINE_ATTRIBUTE_USER_ENABLED 0x00000002
|
|
#define PROCESS_MACHINE_ATTRIBUTE_NATIVE_OS 0x00000004
|
|
#define PROCESS_MACHINE_ATTRIBUTE_WOW64_CONTAINER 0x00000008
|
|
|
|
typedef enum _THREAD_INFORMATION_CLASS
|
|
{
|
|
ThreadMemoryPriority,
|
|
ThreadAbsoluteCpuPriority,
|
|
ThreadDynamicCodePolicy,
|
|
ThreadPowerThrottling,
|
|
ThreadInformationClassMax
|
|
} THREAD_INFORMATION_CLASS;
|
|
|
|
#ifdef __cplusplus
|
|
} // extern "C"
|
|
#endif
|