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