KiSetVirtualHeteroClockIntervalRequest
INT64 __fastcall KiSetVirtualHeteroClockIntervalRequest(CHAR a1){
unsigned __int8 CurrentIrql;
INT64 result;
CurrentIrql = KeGetCurrentIrql();
__writecr8(0xFui64);
if( a1 )
{
if( byte_140C124D8 )
{
RtlRbRemoveNode((unsigned __int64 *)&KiClockIntervalRequests, (unsigned __int64)&KiVirtualHeteroClockRequest);
byte_140C124D8 = 0;
if( (_DWORD)Tag )
PoTraceSystemTimerResolutionKernel(0i64, (unsigned int)Tag);
KiSetClockIntervalToMinimumRequested();
}
}
else if( !byte_140C124D8 && (_DWORD)KiQosHysteresisTimerPeriod )
{
KiSetClockInterval((unsigned int)KiQosHysteresisTimerPeriod, 0, (UINT64)&KiVirtualHeteroClockRequest);
KiSendClockInterruptToClockOwner();
}
result = CurrentIrql;
__writecr8(CurrentIrql);
return result;
}Referenced by:
KeUpdatePendingQosRequest
KiSetVirtualHeteroClockIntervalRequestDpcRoutine