KiFastReadyThread
VOID __stdcall KiFastReadyThread(_ETHREAD *Thread){
UINT8 CurrentIrql;
struct _KPRCB *CurrentPrcb;
INT64 v4;
UINT64 SpinCount;
__int64 v6;
CurrentIrql = KeGetCurrentIrql();
__writecr8(2ui64);
CurrentPrcb = KeGetCurrentPrcb();
LODWORD(SpinCount) = 0;
while( _interlockedbittestandset64((volatile signed __int32 *)Thread + 16, 0i64) )
{
do
KeYieldProcessorEx(&SpinCount);
while( *((_QWORD *)Thread + 8) );
}
KiEnterDeferredReadyState((INT64)Thread);
KiReleaseThreadLockSafe(v4);
*((_QWORD *)Thread + 27) = 0i64;
v6 = (__int64)Thread + 216;
KiReadyDeferredReadyList(CurrentPrcb, &v6);
KiCheckForThreadDispatch(CurrentPrcb, CurrentIrql);
}Referenced by:
KeReadyThread
KiInSwapKernelStacks