#ifdef _MSC_VER
#pragma once
#endif // _MSC_VER
#ifndef _APISETREALTIME_
#define _APISETREALTIME_
#include <apiset.h>
#include <apisetcconv.h>
#include <minwindef.h>
#ifdef __cplusplus
extern
"C"
{
#endif
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#if (_WIN32_WINNT >= 0x0600)
(
_In_ HANDLE ThreadHandle,
);
(
_In_ HANDLE ProcessHandle,
);
QueryIdleProcessorCycleTime
(
_Inout_ PULONG BufferLength,
_Out_writes_bytes_opt_(*BufferLength) PULONG64 ProcessorIdleCycleTime
);
#endif
#if (_WIN32_WINNT >= 0x0601)
QueryIdleProcessorCycleTimeEx
(
_Inout_ PULONG BufferLength,
_Out_writes_bytes_opt_(*BufferLength) PULONG64 ProcessorIdleCycleTime
);
#endif // (_WIN32_WINNT >= 0x0601)
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
QueryInterruptTimePrecise
(
_Out_ PULONGLONG lpInterruptTimePrecise
);
QueryUnbiasedInterruptTimePrecise
(
_Out_ PULONGLONG lpUnbiasedInterruptTimePrecise
lpUnbiasedInterruptTimePrecise
);
(
_Out_ PULONGLONG lpInterruptTime
);
#if (_WIN32_WINNT >= 0x0601)
QueryUnbiasedInterruptTime
(
_Out_ PULONGLONG UnbiasedTime
);
#endif // (_WIN32_WINNT >= 0x0601)
QueryAuxiliaryCounterFrequency
(
_Out_ PULONGLONG lpAuxiliaryCounterFrequency
lpAuxiliaryCounterFrequency
);
(
_In_ ULONGLONG ullAuxiliaryCounterValue,
_Out_ PULONGLONG lpPerformanceCounterValue,
_Out_opt_ PULONGLONG lpConversionError
);
(
_In_ ULONGLONG ullPerformanceCounterValue,
_Out_ PULONGLONG lpAuxiliaryCounterValue,
_Out_opt_ PULONGLONG lpConversionError
);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#ifdef __cplusplus
}
#endif
#endif // _APISETREALTIME_