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