MiInitializeNuma
VOID __stdcall MiInitializeNuma(_MI_PARTITION *Partition){
_MI_NODE_INFORMATION *NodeInformation;
__int64 v3;
unsigned int i;
int v5;
int *v6;
_SLIST_HEADER *v7;
int v8;
unsigned int v9;
_RTL_BITMAP *FreePageListHeadsBitmap;
unsigned __int64 v11;
unsigned __int64 *p_Flink;
__int64 v13;
unsigned __int64 *v14;
__int64 v15;
NodeInformation = Partition->Core.NodeInformation;
v3 = *(&stru_140C4DB30 + 22);
for( i = 0; i < (unsigned __int16)KeNumberNodes; v3 += 176i64 )
{
NodeInformation->Color = i;
NodeInformation->LargePageRebuildTimer.SecondsLeft = 8;
NodeInformation->LargePageRebuildTimer.NextPassDelta = 8;
NodeInformation->NodeLock._bf_0 = 0i64;
NodeInformation->LargePageLock = 0i64;
NodeInformation->MmShiftedColor = i << *(&stru_140C4DB30 + 156);
if( Partition == &Irp )
{
v5 = 0;
v6 = (int *)(v3 + 16);
v7 = (_SLIST_HEADER *)v3;
do
{
InitializeSListHead(v7);
v8 = -(v5++ != 1);
v7 += 2;
*v6 = v8 & 5;
v6 += 8;
}
while( v5 < 2 );
}
MiInitializeChannelOrdering((UINT64 *)&Partition->Core.PartitionId, i);
v9 = 0;
FreePageListHeadsBitmap = NodeInformation->FreePageListHeadsBitmap;
do
{
FreePageListHeadsBitmap->SizeOfBitMap = *(&stru_140C4DB30 + 66) + 1;
++FreePageListHeadsBitmap;
v11 = (unsigned __int64)(v9++ << 8) >> 5;
FreePageListHeadsBitmap[-1].Buffer = &NodeInformation->FreePageListHeadsBitmapBuffer[v11];
}
while( v9 < 2 );
p_Flink = &NodeInformation->StandbyPageList[0][0].Flink;
v13 = 8i64;
do
{
v14 = p_Flink;
v15 = 4i64;
do
{
*(v14 - 1) = 0i64;
*v14 = 0xFFFFFFFFFi64;
v14[1] = 0xFFFFFFFFFi64;
v14 += 24;
--v15;
}
while( v15 );
p_Flink += 3;
--v13;
}
while( v13 );
++i;
++NodeInformation;
}
}Referenced by:
MiInitializePartition