MiReferencePageRuns
PHYSICAL_MEMORY_DESCRIPTOR *__stdcall MiReferencePageRuns(_MI_PARTITION *Partition, UINT64 NumaList){
unsigned int v2;
UINT8 CurrentIrql;
PHYSICAL_MEMORY_DESCRIPTOR *v5;
v2 = NumaList;
CurrentIrql = KeGetCurrentIrql();
__writecr8(2ui64);
ExpAcquireSpinLockExclusive((INT64 *)&dword_140C50B88, CurrentIrql);
if( Partition != (_MI_PARTITION *)&MiSystemPartition )
ExAcquireSpinLockExclusiveAtDpcLevel((INT64 *)Partition + 25);
if( v2 == 1 )
{
v5 = (PHYSICAL_MEMORY_DESCRIPTOR *)*((_QWORD *)Partition + 4);
}
else if( Partition == (_MI_PARTITION *)&MiSystemPartition )
{
v5 = (PHYSICAL_MEMORY_DESCRIPTOR *)MmPhysicalMemoryBlock;
}
else
{
v5 = (PHYSICAL_MEMORY_DESCRIPTOR *)*((_QWORD *)Partition + 12);
}
if( v5 )
{
++v5[-1].Run[0].PageCount;
++qword_140C50AE8;
}
if( Partition != (_MI_PARTITION *)&MiSystemPartition )
ExReleaseSpinLockExclusiveFromDpcLevel((INT64 *)Partition + 25);
dword_140C50B88 = 0;
__writecr8(CurrentIrql);
if( v5 )
return v5;
else
return MiReferencePageRuns((_MI_PARTITION *)&MiSystemPartition, v2);
}Referenced by:
MiAddPhysicalMemory
MiCombineAllPhysicalMemory
MiComputeNodeMemory
MiFindContiguousPages
MiFinishResume
MiGetPhysicalMemoryRanges
MiInitializeScrubPacket
MiRebuildLargePage
MiReferencePageRuns
MiRemovePhysicalMemory
MiScanPagefileSpace
MiWaitForFreePagesToZero
MiZeroLargePages
MmGetNodeChannelRanges
MmIdentifyPhysicalMemory