HalpTimerWatchdogPreResetInterrupt
NTSTATUS __stdcall HalpTimerWatchdogPreResetInterrupt(_KINTERRUPT *Interrupt, VOID *ServiceContext){
void *v2;
void *v3;
__int64 v4;
__int64 v5;
__int64 v6;
UINT64 v7;
void *v8;
unsigned __int64 BugCheckParameter4;
PVOID v10;
UINT64 QpcTimeStamp;
HalpTimerGetInternalData((_KDPC *)HalpWatchdogTimer, HalpWatchdogTimer, v2, v3);
v6 = (*(__int64(__fastcall **)(__int64))(v4 + 120))(v5);
if( (unsigned __int64)qword_140C4A340 <= 0xFFFFFFFFFFFFFFFDui64 )
{
v8 = (void *)(*(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart - qword_140C4A350);
if( *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart - qword_140C4A350 < (unsigned __int64)qword_140C4A340 >> 1 )
{
BugCheckParameter4 = (unsigned int)KiClockTimerOwner;
LODWORD(v10) = KeQueryInterruptTimePrecise(&QpcTimeStamp);
KeBugCheckEx(0x101u, v8, (PVOID)((unsigned __int64)qword_140C4A340 >> 1), v10, (PVOID)BugCheckParameter4);
}
HalpTimerWatchdogResetCountdown(v7);
}
LOBYTE(v6) = 1;
return v6;
}Referenced by:
No references.