#![cfg(feature = "win10plus")]
use winapi::um::realtimeapiset::QueryUnbiasedInterruptTime;
use winapi::um::winnt::PULONGLONG;
#[link(name = "mincore")]
extern "system" {
fn QueryInterruptTime(InterruptTime: PULONGLONG);
}
const SYSTEM_TIME_UNIT: u64 = 100;
pub fn now_including_suspend() -> u64 {
let mut interrupt_time = 0;
unsafe {
QueryInterruptTime(&mut interrupt_time);
}
interrupt_time * SYSTEM_TIME_UNIT
}
pub fn now_awake() -> u64 {
let mut interrupt_time = 0;
unsafe {
assert!(QueryUnbiasedInterruptTime(&mut interrupt_time) != 0);
}
interrupt_time * SYSTEM_TIME_UNIT
}