crt: Update processthreads libraries & header Based on https://docs.microsoft.com/en-us/uwp/win32-and-com/win32-apis#apis-from-api-ms-win-core-processthreads-l1-1-0dll Signed-off-by: Liu Hao <lh_mouse@126.com>
diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am index 4e8823e..3afd57c 100644 --- a/mingw-w64-crt/Makefile.am +++ b/mingw-w64-crt/Makefile.am
@@ -1682,6 +1682,8 @@ %/libapi-ms-win-core-memory-l1-1-2.a \ %/libapi-ms-win-core-memory-l1-1-3.a \ %/libapi-ms-win-core-processenvironment-l1-2-0.a \ + %/libapi-ms-win-core-processthreads-l1-1-0.a \ + %/libapi-ms-win-core-processthreads-l1-1-1.a \ %/libapi-ms-win-core-processthreads-l1-1-2.a \ %/libapi-ms-win-core-processthreads-l1-1-3.a \ %/libapi-ms-win-core-profile-l1-1-0.a \ @@ -1771,6 +1773,8 @@ %/libapi-ms-win-core-memory-l1-1-3.a \ %/libapi-ms-win-core-normalization-l1-1-0.a \ %/libapi-ms-win-core-processenvironment-l1-2-0.a \ + %/libapi-ms-win-core-processthreads-l1-1-0.a \ + %/libapi-ms-win-core-processthreads-l1-1-1.a \ %/libapi-ms-win-core-processthreads-l1-1-2.a \ %/libapi-ms-win-core-processthreads-l1-1-3.a \ %/libapi-ms-win-core-profile-l1-1-0.a \
diff --git a/mingw-w64-crt/lib-common/api-ms-win-core-processthreads-l1-1-0.def b/mingw-w64-crt/lib-common/api-ms-win-core-processthreads-l1-1-0.def new file mode 100644 index 0000000..a776021 --- /dev/null +++ b/mingw-w64-crt/lib-common/api-ms-win-core-processthreads-l1-1-0.def
@@ -0,0 +1,18 @@ +LIBRARY api-ms-win-core-processthreads-l1-1-0 + +EXPORTS + +CreateProcessA +CreateProcessW +GetExitCodeProcess +GetPriorityClass +GetProcessId +GetProcessTimes +GetThreadPriorityBoost +OpenProcessToken +OpenThread +OpenThreadToken +SetPriorityClass +SetThreadPriorityBoost +SetThreadToken +ExitProcess
diff --git a/mingw-w64-crt/lib-common/api-ms-win-core-processthreads-l1-1-1.def b/mingw-w64-crt/lib-common/api-ms-win-core-processthreads-l1-1-1.def new file mode 100644 index 0000000..e8f1283 --- /dev/null +++ b/mingw-w64-crt/lib-common/api-ms-win-core-processthreads-l1-1-1.def
@@ -0,0 +1,11 @@ +LIBRARY api-ms-win-core-processthreads-l1-1-1 + +EXPORTS + +FlushInstructionCache +GetCurrentProcessorNumber +GetCurrentProcessorNumberEx +GetCurrentThreadStackLimits +GetProcessMitigationPolicy +GetThreadIdealProcessorEx +GetThreadTimes
diff --git a/mingw-w64-crt/lib-common/mincore.mri b/mingw-w64-crt/lib-common/mincore.mri index e48a0bc..5747194 100644 --- a/mingw-w64-crt/lib-common/mincore.mri +++ b/mingw-w64-crt/lib-common/mincore.mri
@@ -60,8 +60,8 @@ ; FIXME libapi-ms-win-core-processenvironment-l1-1-0.a ADDLIB libapi-ms-win-core-processenvironment-l1-2-0.a ; FIXME libapi-ms-win-core-processsnapshot-l1-1-0.a -; FIXME libapi-ms-win-core-processthreads-l1-1-0.a -; FIXME libapi-ms-win-core-processthreads-l1-1-1.a +ADDLIB libapi-ms-win-core-processthreads-l1-1-0.a +ADDLIB libapi-ms-win-core-processthreads-l1-1-1.a ADDLIB libapi-ms-win-core-processthreads-l1-1-2.a ADDLIB libapi-ms-win-core-processthreads-l1-1-3.a ; FIXME libapi-ms-win-core-processtopology-l1-1-0.a
diff --git a/mingw-w64-crt/lib-common/windowsapp.mri b/mingw-w64-crt/lib-common/windowsapp.mri index 003b7cc..cf956d3 100644 --- a/mingw-w64-crt/lib-common/windowsapp.mri +++ b/mingw-w64-crt/lib-common/windowsapp.mri
@@ -30,6 +30,8 @@ ADDLIB libapi-ms-win-core-memory-l1-1-3.a ADDLIB libapi-ms-win-core-normalization-l1-1-0.a ADDLIB libapi-ms-win-core-processenvironment-l1-2-0.a +ADDLIB libapi-ms-win-core-processthreads-l1-1-0.a +ADDLIB libapi-ms-win-core-processthreads-l1-1-1.a ADDLIB libapi-ms-win-core-processthreads-l1-1-2.a ADDLIB libapi-ms-win-core-processthreads-l1-1-3.a ADDLIB libapi-ms-win-core-profile-l1-1-0.a
diff --git a/mingw-w64-crt/lib32/api-ms-win-core-processthreads-l1-1-0.def b/mingw-w64-crt/lib32/api-ms-win-core-processthreads-l1-1-0.def new file mode 100644 index 0000000..8f66723 --- /dev/null +++ b/mingw-w64-crt/lib32/api-ms-win-core-processthreads-l1-1-0.def
@@ -0,0 +1,18 @@ +LIBRARY api-ms-win-core-processthreads-l1-1-0 + +EXPORTS + +CreateProcessA@40 +CreateProcessW@40 +GetExitCodeProcess@8 +GetPriorityClass@4 +GetProcessId@4 +GetProcessTimes@20 +GetThreadPriorityBoost@8 +OpenProcessToken@12 +OpenThread@12 +OpenThreadToken@16 +SetPriorityClass@8 +SetThreadPriorityBoost@8 +SetThreadToken@8 +ExitProcess@4
diff --git a/mingw-w64-crt/lib32/api-ms-win-core-processthreads-l1-1-1.def b/mingw-w64-crt/lib32/api-ms-win-core-processthreads-l1-1-1.def new file mode 100644 index 0000000..42012ff --- /dev/null +++ b/mingw-w64-crt/lib32/api-ms-win-core-processthreads-l1-1-1.def
@@ -0,0 +1,11 @@ +LIBRARY api-ms-win-core-processthreads-l1-1-1 + +EXPORTS + +FlushInstructionCache@12 +GetCurrentProcessorNumber@0 +GetCurrentProcessorNumberEx@4 +GetCurrentThreadStackLimits@8 +GetProcessMitigationPolicy@16 +GetThreadIdealProcessorEx@8 +GetThreadTimes@20
diff --git a/mingw-w64-headers/include/processthreadsapi.h b/mingw-w64-headers/include/processthreadsapi.h index 717513e..931a6f1 100644 --- a/mingw-w64-headers/include/processthreadsapi.h +++ b/mingw-w64-headers/include/processthreadsapi.h
@@ -25,7 +25,29 @@ #endif #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) || _WIN32_WINNT >= _WIN32_WINNT_WIN10 WINBASEAPI HANDLE WINAPI OpenProcess (DWORD dwDesiredAccess, WINBOOL bInheritHandle, DWORD dwProcessId); + + WINBASEAPI DWORD WINAPI QueueUserAPC (PAPCFUNC pfnAPC, HANDLE hThread, ULONG_PTR dwData); + WINBASEAPI WINBOOL WINAPI GetProcessTimes (HANDLE hProcess, LPFILETIME lpCreationTime, LPFILETIME lpExitTime, LPFILETIME lpKernelTime, LPFILETIME lpUserTime); + WINBASEAPI DECLSPEC_NORETURN VOID WINAPI ExitProcess (UINT uExitCode); + WINBASEAPI WINBOOL WINAPI GetExitCodeProcess (HANDLE hProcess, LPDWORD lpExitCode); + WINBASEAPI WINBOOL WINAPI SwitchToThread (VOID); + WINBASEAPI HANDLE WINAPI OpenThread (DWORD dwDesiredAccess, WINBOOL bInheritHandle, DWORD dwThreadId); + WINBASEAPI WINBOOL WINAPI SetThreadPriorityBoost (HANDLE hThread, WINBOOL bDisablePriorityBoost); + WINBASEAPI WINBOOL WINAPI GetThreadPriorityBoost (HANDLE hThread, PBOOL pDisablePriorityBoost); + WINADVAPI WINBOOL APIENTRY SetThreadToken (PHANDLE Thread, HANDLE Token); + WINADVAPI WINBOOL WINAPI OpenProcessToken (HANDLE ProcessHandle, DWORD DesiredAccess, PHANDLE TokenHandle); + WINADVAPI WINBOOL WINAPI OpenThreadToken (HANDLE ThreadHandle, DWORD DesiredAccess, WINBOOL OpenAsSelf, PHANDLE TokenHandle); + WINBASEAPI WINBOOL WINAPI SetPriorityClass (HANDLE hProcess, DWORD dwPriorityClass); + WINBASEAPI DWORD WINAPI GetPriorityClass (HANDLE hProcess); + WINBASEAPI DWORD WINAPI GetProcessId (HANDLE Process); + WINBASEAPI DWORD WINAPI GetThreadId (HANDLE Thread); + WINBASEAPI WINBOOL WINAPI GetThreadContext (HANDLE hThread, LPCONTEXT lpContext); + WINBASEAPI WINBOOL WINAPI FlushInstructionCache (HANDLE hProcess, LPCVOID lpBaseAddress, SIZE_T dwSize); + WINBASEAPI WINBOOL WINAPI GetThreadTimes (HANDLE hThread, LPFILETIME lpCreationTime, LPFILETIME lpExitTime, LPFILETIME lpKernelTime, LPFILETIME lpUserTime); + WINBASEAPI DWORD WINAPI GetCurrentProcessorNumber (VOID); + #endif + #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) typedef struct _PROCESS_INFORMATION { @@ -35,6 +57,8 @@ DWORD dwThreadId; } PROCESS_INFORMATION, *PPROCESS_INFORMATION, *LPPROCESS_INFORMATION; + typedef struct _PROC_THREAD_ATTRIBUTE_LIST *PPROC_THREAD_ATTRIBUTE_LIST, *LPPROC_THREAD_ATTRIBUTE_LIST; + typedef struct _STARTUPINFOA { DWORD cb; LPSTR lpReserved; @@ -80,37 +104,16 @@ __MINGW_TYPEDEF_AW(STARTUPINFO) __MINGW_TYPEDEF_AW(LPSTARTUPINFO) - typedef struct _PROC_THREAD_ATTRIBUTE_LIST *PPROC_THREAD_ATTRIBUTE_LIST, *LPPROC_THREAD_ATTRIBUTE_LIST; - - WINBASEAPI DWORD WINAPI QueueUserAPC (PAPCFUNC pfnAPC, HANDLE hThread, ULONG_PTR dwData); - WINBASEAPI WINBOOL WINAPI GetProcessTimes (HANDLE hProcess, LPFILETIME lpCreationTime, LPFILETIME lpExitTime, LPFILETIME lpKernelTime, LPFILETIME lpUserTime); - WINBASEAPI DECLSPEC_NORETURN VOID WINAPI ExitProcess (UINT uExitCode); - WINBASEAPI WINBOOL WINAPI GetExitCodeProcess (HANDLE hProcess, LPDWORD lpExitCode); - WINBASEAPI WINBOOL WINAPI SwitchToThread (VOID); WINBASEAPI HANDLE WINAPI CreateRemoteThread (HANDLE hProcess, LPSECURITY_ATTRIBUTES lpThreadAttributes, SIZE_T dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId); - WINBASEAPI HANDLE WINAPI OpenThread (DWORD dwDesiredAccess, WINBOOL bInheritHandle, DWORD dwThreadId); - WINBASEAPI WINBOOL WINAPI SetThreadPriorityBoost (HANDLE hThread, WINBOOL bDisablePriorityBoost); - WINBASEAPI WINBOOL WINAPI GetThreadPriorityBoost (HANDLE hThread, PBOOL pDisablePriorityBoost); WINBASEAPI WINBOOL WINAPI TerminateThread (HANDLE hThread, DWORD dwExitCode); WINBASEAPI WINBOOL WINAPI SetProcessShutdownParameters (DWORD dwLevel, DWORD dwFlags); WINBASEAPI DWORD WINAPI GetProcessVersion (DWORD ProcessId); WINBASEAPI VOID WINAPI GetStartupInfoW (LPSTARTUPINFOW lpStartupInfo); - WINADVAPI WINBOOL APIENTRY SetThreadToken (PHANDLE Thread, HANDLE Token); - WINADVAPI WINBOOL WINAPI OpenProcessToken (HANDLE ProcessHandle, DWORD DesiredAccess, PHANDLE TokenHandle); - WINADVAPI WINBOOL WINAPI OpenThreadToken (HANDLE ThreadHandle, DWORD DesiredAccess, WINBOOL OpenAsSelf, PHANDLE TokenHandle); - WINBASEAPI WINBOOL WINAPI SetPriorityClass (HANDLE hProcess, DWORD dwPriorityClass); WINBASEAPI WINBOOL WINAPI SetThreadStackGuarantee (PULONG StackSizeInBytes); - WINBASEAPI DWORD WINAPI GetPriorityClass (HANDLE hProcess); WINBASEAPI WINBOOL WINAPI ProcessIdToSessionId (DWORD dwProcessId, DWORD *pSessionId); - WINBASEAPI DWORD WINAPI GetProcessId (HANDLE Process); - WINBASEAPI DWORD WINAPI GetThreadId (HANDLE Thread); WINBASEAPI HANDLE WINAPI CreateRemoteThreadEx (HANDLE hProcess, LPSECURITY_ATTRIBUTES lpThreadAttributes, SIZE_T dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags, LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList, LPDWORD lpThreadId); - WINBASEAPI WINBOOL WINAPI GetThreadContext (HANDLE hThread, LPCONTEXT lpContext); WINBASEAPI WINBOOL WINAPI SetThreadContext (HANDLE hThread, CONST CONTEXT *lpContext); - WINBASEAPI WINBOOL WINAPI FlushInstructionCache (HANDLE hProcess, LPCVOID lpBaseAddress, SIZE_T dwSize); - WINBASEAPI WINBOOL WINAPI GetThreadTimes (HANDLE hThread, LPFILETIME lpCreationTime, LPFILETIME lpExitTime, LPFILETIME lpKernelTime, LPFILETIME lpUserTime); WINBASEAPI WINBOOL WINAPI GetProcessHandleCount (HANDLE hProcess, PDWORD pdwHandleCount); - WINBASEAPI DWORD WINAPI GetCurrentProcessorNumber (VOID); #ifdef UNICODE #define GetStartupInfo GetStartupInfoW