// Licensed under the Apache License, Version 2.0 // or the MIT license // , at your option. // All files in the project carrying such notice may not be copied, modified, or distributed // except according to those terms. use ctypes::c_longlong; use shared::guiddef::GUID; use shared::minwindef::{BOOL, LPDWORD, PULONG}; use um::winnt::{HANDLE, LPCSTR, LPCWSTR, PHANDLE, PLARGE_INTEGER}; ENUM!{enum AVRT_PRIORITY { AVRT_PRIORITY_VERYLOW = -2i32 as u32, AVRT_PRIORITY_LOW, AVRT_PRIORITY_NORMAL = 0, AVRT_PRIORITY_HIGH, AVRT_PRIORITY_CRITICAL, }} pub const THREAD_ORDER_GROUP_INFINITE_TIMEOUT: c_longlong = -1; extern "system" { pub fn AvSetMmThreadCharacteristicsA( TaskName: LPCSTR, TaskIndex: LPDWORD, ) -> HANDLE; pub fn AvSetMmThreadCharacteristicsW( TaskName: LPCWSTR, TaskIndex: LPDWORD, ) -> HANDLE; pub fn AvSetMmMaxThreadCharacteristicsA( FirstTask: LPCSTR, SecondTask: LPCSTR, TaskIndex: LPDWORD, ) -> HANDLE; pub fn AvSetMmMaxThreadCharacteristicsW( FirstTask: LPCWSTR, SecondTask: LPCWSTR, TaskIndex: LPDWORD, ) -> HANDLE; pub fn AvRevertMmThreadCharacteristics( avrt_handle: HANDLE, ) -> BOOL; pub fn AvSetMmThreadPriority( AvrtHandle: HANDLE, Priority: AVRT_PRIORITY, ) -> BOOL; pub fn AvRtCreateThreadOrderingGroup( Context: PHANDLE, Period: PLARGE_INTEGER, ThreadOrderingGuid: *mut GUID, Timeout: PLARGE_INTEGER, ) -> BOOL; pub fn AvRtCreateThreadOrderingGroupExA( Context: PHANDLE, Period: PLARGE_INTEGER, ThreadOrderingGuid: *mut GUID, Timeout: PLARGE_INTEGER, TaskName: LPCSTR, )-> BOOL; pub fn AvRtCreateThreadOrderingGroupExW( Context: PHANDLE, Period: PLARGE_INTEGER, ThreadOrderingGuid: *mut GUID, Timeout: PLARGE_INTEGER, TaskName: LPCWSTR, ) -> BOOL; pub fn AvRtJoinThreadOrderingGroup( Context: PHANDLE, ThreadOrderingGuid: *mut GUID, Before: BOOL, ) -> BOOL; pub fn AvRtWaitOnThreadOrderingGroup( Context: HANDLE, ) -> BOOL; pub fn AvRtLeaveThreadOrderingGroup( Context: HANDLE, ) -> BOOL; pub fn AvRtDeleteThreadOrderingGroup( Context: HANDLE, ) -> BOOL; pub fn AvQuerySystemResponsiveness( AvrtHandle: HANDLE, SystemResponsivenessValue: PULONG, ) -> BOOL; }