MiDemoteLargeFreePage
NTSTATUS __stdcall MiDemoteLargeFreePage(UINT64 PageFrameIndex, UINT64 LargePageIndex){
unsigned int v2;
unsigned int v3;
unsigned __int8 CurrentIrql;
UINT64 v6;
_MMPFN *v7;
__int64 v8;
INT64 v9;
v3 = v2;
CurrentIrql = KeGetCurrentIrql();
v6 = LargePageIndex & ~(MiLargePageSizes[v2] - 1);
v7 = &MmGetPfnDb()[v6];
LODWORD(v8) = MiSearchNumaNodeTable((PVOID)((__int64)(48 * v6) / 48));
v9 = *(_QWORD *)(PageFrameIndex + 16) + 4544i64 * *(unsigned int *)(v8 + 8);
if( MiTryUnlinkNodeLargePage(PageFrameIndex, v6) == ZeroedPageList )
return 0;
MiInsertDemotedPages(v9, (INT64)v7, v3, v3 + 1, 0i64);
__writecr8(CurrentIrql);
return 1;
}Referenced by:
MiTradePage