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