MiUpdateSlabPagePlaceholderState

void __fastcall MiUpdateSlabPagePlaceholderState(__int64 a1, INT64 a2, INT64 a3, int a4){
  _MMPFN *v7; 
  __int64 v8; 
  unsigned int v9; 
  unsigned int v10; 
  _MMPFN *v11; 

  if( !*(_DWORD *)(a1 + 48) )
  {
    if( a4 )
    {
      if( a3 == 1 )
      {
        v11 = &MmGetPfnDb()[a2];
        v11->u4._bf_0 = v11->u4._bf_0 & 0x8FFFFFFFFFFFFFFFui64 | 0x3000000000000000i64;
        MiAbortCombineScan(v11);
      }
      v10 = 0;
      v9 = *((_DWORD *)MiSlabProtectionToPageProtection + *(int *)(a1 + 52));
    }
    else
    {
      if( a3 == 1 )
      {
        v7 = &MmGetPfnDb()[a2];
        v7->u4._bf_0 &= 0x8FFFFFFFFFFFFFFFui64;
      }
      v8 = *(int *)(a1 + 52);
      v9 = 0;
      v10 = *((_DWORD *)MiSlabProtectionToPageProtection + v8);
    }
    if( (MiFlags & 0x8000) != 0 && VslSetPlaceholderPages(a2, a3, v10, v9) < 0 )
      KeBugCheckEx(0x1Au, (PVOID)0x5150F, (PVOID)a2, (PVOID)v10, (PVOID)v9);
  }
}

Referenced by:

MiAllocateSlabEntry
MiFreePageToSlabAllocator
MiFreeSlabEntry
MiGetPageFromSlabAllocator