MiEmptyKernelStackCache
VOID __stdcall MiEmptyKernelStackCache(){
unsigned int i;
_KPRCB *Prcb;
INT64 v2;
unsigned int j;
__int64 v4;
__int64 v5;
_SLIST_HEADER *v6;
PSLIST_ENTRY v7;
if( (MiFlags & 0x800) != 0 )
{
for( i = 0; i < (unsigned int)KeNumberProcessors_0; ++i )
{
Prcb = KeGetPrcb(i);
if( Prcb->CachedStack )
{
v2 = _InterlockedExchange64((volatile __int64 *)&Prcb->CachedStack, 0i64);
if( v2 )
MiDeleteCachedKernelStack(v2);
}
}
for( j = 0; j < (unsigned __int16)KeNumberNodes; ++j )
{
v4 = 2i64;
v5 = 176i64 * j;
do
{
v6 = (_SLIST_HEADER *)(v5 + *(&stru_140C4DB30 + 22));
while( 1 )
{
v7 = RtlpInterlockedPopEntrySList(v6);
if( !v7 )
break;
MiDeleteCachedKernelStack((INT64)v7);
}
v5 += 32i64;
--v4;
}
while( v4 );
}
}
}Referenced by:
MiFindContiguousPages
MiScrubNode
MmRelocatePfnList