KiInSwapKernelStacks

VOID __stdcall KiInSwapKernelStacks(_SINGLE_LIST_ENTRY *SwapEntry){
  _SINGLE_LIST_ENTRY *v2; 
  _KERNEL_STACK_SEGMENT StackSegment; 

  do
  {
    v2 = SwapEntry - 27;
    SwapEntry = SwapEntry->Next;
    memset(&StackSegment, 0, sizeof(StackSegment));
    if( (MiFlags & 0x40) != 0 )
    {
      KeGetNextKernelStackSegment((_KTHREAD *)v2, &StackSegment, 1u);
      do
        MiInPageSingleKernelStack((ULONG_PTR)v2, &StackSegment);
      while( KeGetNextKernelStackSegment((_KTHREAD *)v2, &StackSegment, 0) );
    }
    _interlockedbittestandset((volatile signed __int32 *)&v2[15], 0x11u);
    KiFastReadyThread((_KTHREAD *)v2);
  }
  while( SwapEntry );
}

Referenced by:

KeSwapProcessOrStack