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