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