KiCheckStall
VOID __stdcall KiCheckStall(_KPRCB *Prcb, UINT8 Sleep){
_KPRCB *v3;
UINT64 v5;
_LARGE_INTEGER v6;
v6.QuadPart = 0i64;
v3 = (_KPRCB *)KiFreezeStallOwner;
if( Prcb == (_KPRCB *)KiFreezeStallOwner )
{
v5 = KeQueryPerformanceCounter(&v6);
if( 1000 * (v5 - KiLastStallTick) / v6.QuadPart > 0x1F4 )
KiLastStallTick = v5;
}
if( Sleep && v3 && v3 != Prcb && KiDebuggerOwner && (_KPRCB *)KiDebuggerOwner != Prcb )
_mm_pause();
}Referenced by:
KeStallExecutionProcessor
KeStallWhileFrozen
KeSwitchFrozenProcessor
KiFreezeTargetExecution