KiInSwapKernelStacks

VOID __stdcall KiInSwapKernelStacks(SINGLE_LIST_ENTRY *SwapEntry){
  INT64 v1; 
  SINGLE_LIST_ENTRY *v3; 
  _KERNEL_STACK_SEGMENT StackSegment; 
  do
  {
    v3 = SwapEntry - 27;
    SwapEntry = SwapEntry->Next;
    memset(&StackSegment, 0, sizeof(StackSegment));
    if( (MiFlags & 0x40) != 0 )
    {
      LOBYTE(v1) = 1;
      KeGetNextKernelStackSegment((_ETHREAD *)v3, &StackSegment, v1);
      do
        MiInPageSingleKernelStack((_KTHREAD *)v3, &StackSegment);
      while( (unsigned __int8)KeGetNextKernelStackSegment((_ETHREAD *)v3, &StackSegment, 0i64) );
    }
    _interlockedbittestandset((volatile signed __int32 *)&v3[15], 0x11u);
    KiFastReadyThread((_KTHREAD *)v3);
  }
  while( SwapEntry );
}

Referenced by:

KeSwapProcessOrStack