MiMakePageBad

VOID __fastcall MiMakePageBad(UINT64 a1, CHAR a2){
  int v4; 
  unsigned __int8 v5; 
  v4 = a2 & 1;
  if( (a2 & 1) != 0 )
    v5 = MiLockPageInline(a1);
  else
    v5 = 17;
  if( !MiIsPageOnBadList(a1) )
  {
    if( (*(_BYTE *)(a1 + 35) & 0x40) == 0 )
    {
      MiAcquireNonPagedResources(
        *(_MI_PARTITION **)(qword_140C4E388 + 8 * ((*(_QWORD *)(a1 + 40) >> 39) & 0x3FFi64)),
        1ui64);
      MiSetPfnRemovalRequested(a1, 1i64);
    }
    if( (a2 & 2) != 0 )
      MiInsertPageInList((_MMPFN *)a1, 0x20ui64);
    if( v4 )
    {
      _InterlockedAnd64((volatile signed __int64 *)(a1 + 24), 0x7FFFFFFFFFFFFFFFui64);
      __writecr8(v5);
    }
    _InterlockedIncrement(&dword_140C4E51C);
  }
}

Referenced by:

MiScrubLargeMappedPage
MiScrubNode
MiScrubProcessPhysicalPages