KeSwapProcessOrStack
VOID __stdcall __noreturn KeSwapProcessOrStack(PVOID Context){
_SINGLE_LIST_ENTRY *v1;
SINGLE_LIST_ENTRY *v2;
SINGLE_LIST_ENTRY *v3;
KeSetPriorityThread(KeGetCurrentThread(), 23);
while( 1 )
{
KeWaitForSingleObject(&KiSwapEvent, Executive, 0, 0, 0i64);
if( _InterlockedCompareExchange(&KiStackOutSwapRequest, 0, 1) == 1 )
KiOutSwapKernelStacks();
v1 = (_SINGLE_LIST_ENTRY *)_InterlockedExchange64(&KiProcessOutSwapListHead, 0i64);
if( v1 )
KiOutSwapProcesses(v1);
v2 = (SINGLE_LIST_ENTRY *)_InterlockedExchange64(&KiProcessInSwapListHead, 0i64);
if( v2 )
KiInSwapProcesses(v2);
v3 = (SINGLE_LIST_ENTRY *)_InterlockedExchange64(&KiStackInSwapListHead, 0i64);
if( v3 )
KiInSwapKernelStacks(v3);
}
}Referenced by:
No references.