MiClearContainingMapping

VOID __stdcall MiClearContainingMapping(_MMPFN *Pfn1){
  __int64 v2; 
  unsigned int v3; 
  char *v4; 
  unsigned __int64 *v5; 
  __int64 v6; 
  unsigned __int64 v7; 

  v2 = Pfn1->u4._bf_0 & 0xFFFFFFFFFi64;
  if( (_MMPTE *)(MmGetPfnDb()[v2].PteLong | 0x8000000000000000ui64) == (_MMPTE *)((char *)MmGetPteBase()
                                                                                 + ((Pfn1->PteLong >> 9) & 0x7FFFFFFFF8i64)) )
  {
    v3 = (LODWORD(Pfn1->PteLong) >> 3) & 0x1FF;
    v4 = (char *)MiMapPageInHyperSpaceWorker(v2, 0i64, 0x80000000ui64);
    v5 = (unsigned __int64 *)&v4[8 * v3];
    LODWORD(v6) = MI_READ_PTE_LOCK_FREE((INT64)v5);
    if( (v6 & 1) != 0 )
    {
      v7 = v6 & 0xFFFFFFFFFFFFFBFEui64 | 0x400;
      MiPteInShadowRange((UINT64)v5);
      *v5 = v7;
    }
    MiUnmapPageInHyperSpaceWorker(v4, 0x11u, 0x80000000ui64);
  }
}

Referenced by:

MiDeleteTopLevelPage