KiSetClockIntervalToMinimumRequested
UINT64 __stdcall KiSetClockIntervalToMinimumRequested(){
unsigned __int64 v0;
UINT64 v1;
bool v2;
unsigned int v3;
INT64 v4;
unsigned int ClockIntervalOneShot;
UINT64 result;
__int16 v7;
INT64 CurrentQpc;
if( (qword_140CEBF08 & 1) != 0 )
{
if( qword_140CEBF08 == 1i64 )
v0 = 0i64;
else
v0 = qword_140CEBF08 ^ ((unsigned __int64)&qword_140CEBF00.Root + 1);
}
else
{
v0 = qword_140CEBF08;
}
v1 = KiClockOwnerOneShotRequest;
v2 = 0;
v3 = *(_DWORD *)(v0 + 28);
if( KiClockOwnerOneShotRequest )
{
_disable();
v2 = (v7 & 0x200) != 0;
LODWORD(v4) = RtlGetInterruptTimePrecise(&CurrentQpc);
ClockIntervalOneShot = KiGetClockIntervalOneShot(v1, v4);
if( ClockIntervalOneShot < v3 )
v3 = ClockIntervalOneShot;
}
if( KiClockOwnerOneShotRequestState != 2 && (v3 == (_DWORD)KiLastRequestedTimeIncrement || v3 == KeTimeIncrement) )
result = (unsigned int)KeTimeIncrement;
else
result = KiSetClockTickRate(v3);
if( v2 )
_enable();
return result;
}Referenced by:
KeClockInterruptNotify
KiCheckForTimerExpiration
KiSetClockInterval
KiSetVirtualHeteroClockIntervalRequest