1 /**
2 * This file is part of the mingw-w64 runtime package.
3 * No warranty is given; refer to the file DISCLAIMER within this package.
4 */
5 
6 #include <winapifamily.h>
7 
8 #ifndef _AVRT_
9 #define _AVRT_
10 
11 #ifdef __cplusplus
12 extern "C" {
13 #endif
14 
15 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
16   typedef enum _AVRT_PRIORITY {
17     AVRT_PRIORITY_VERYLOW = -2,
18     AVRT_PRIORITY_LOW,
19     AVRT_PRIORITY_NORMAL,
20     AVRT_PRIORITY_HIGH,
21     AVRT_PRIORITY_CRITICAL
22   } AVRT_PRIORITY,*PAVRT_PRIORITY;
23 
24 #define THREAD_ORDER_GROUP_INFINITE_TIMEOUT (-1LL)
25 
26 #define AVRTAPI
27 
28   WINBOOL WINAPI AvQuerySystemResponsiveness (HANDLE AvrtHandle, PULONG SystemResponsivenessValue);
29   WINBOOL WINAPI AvRevertMmThreadCharacteristics (HANDLE AvrtHandle);
30   WINBOOL WINAPI AvRtCreateThreadOrderingGroup (PHANDLE Context, PLARGE_INTEGER Period, GUID *ThreadOrderingGuid, PLARGE_INTEGER Timeout);
31   WINBOOL WINAPI AvRtCreateThreadOrderingGroupExA (PHANDLE Context, PLARGE_INTEGER Period, GUID *ThreadOrderingGuid, PLARGE_INTEGER Timeout, LPCSTR TaskName);
32   WINBOOL WINAPI AvRtCreateThreadOrderingGroupExW (PHANDLE Context, PLARGE_INTEGER Period, GUID *ThreadOrderingGuid, PLARGE_INTEGER Timeout, LPCWSTR TaskName);
33   WINBOOL WINAPI AvRtDeleteThreadOrderingGroup (HANDLE Context);
34   WINBOOL WINAPI AvRtJoinThreadOrderingGroup (PHANDLE Context, GUID *ThreadOrderingGuid, WINBOOL Before);
35   WINBOOL WINAPI AvRtLeaveThreadOrderingGroup (HANDLE Context);
36   WINBOOL WINAPI AvRtWaitOnThreadOrderingGroup (HANDLE Context);
37   HANDLE WINAPI AvSetMmMaxThreadCharacteristicsA (LPCSTR FirstTask, LPCSTR SecondTask, LPDWORD TaskIndex);
38   HANDLE WINAPI AvSetMmMaxThreadCharacteristicsW (LPCWSTR FirstTask, LPCWSTR SecondTask, LPDWORD TaskIndex);
39   HANDLE WINAPI AvSetMmThreadCharacteristicsA (LPCSTR TaskName, LPDWORD TaskIndex);
40   HANDLE WINAPI AvSetMmThreadCharacteristicsW (LPCWSTR TaskName, LPDWORD TaskIndex);
41   WINBOOL WINAPI AvSetMmThreadPriority (HANDLE AvrtHandle, AVRT_PRIORITY Priority);
42 
43 #define AvSetMmThreadCharacteristics __MINGW_NAME_AW(AvSetMmThreadCharacteristics)
44 #define AvSetMmMaxThreadCharacteristics __MINGW_NAME_AW(AvSetMmMaxThreadCharacteristics)
45 #define AvRtCreateThreadOrderingGroupEx __MINGW_NAME_AW(AvRtCreateThreadOrderingGroupEx)
46 
47 #endif
48 
49 #ifdef __cplusplus
50 }
51 #endif
52 
53 #endif
54