MiMarkPfnVerified

VOID __stdcall MiMarkPfnVerified(PVOID Pfn1, UINT64 VerifyType){
  wchar_t *v2; 
  unsigned int v3; 
  signed __int64 v5; 
  _PREFIX_TABLE *v6; 
  UINT8 v7; 
  int v8; 
  char v9; 
  int v10; 
  INT16 v11; 
  _STRING FullName; 

  v3 = VerifyType;
  FullName = 0i64;
  v5 = (_BYTE *)Pfn1 - (_BYTE *)MmGetPfnDb();
  v6 = (_PREFIX_TABLE *)(v5 / 48);
  if( (VerifyType & 4) != 0 )
    v7 = 17;
  else
    v7 = MiLockPageInline((_MMPFN *)Pfn1);
  if( (v3 & 2) != 0 && ((*((_QWORD *)Pfn1 + 5) >> 60) & 7) == 3 )
    v3 &= ~2u;
  if( (v3 & 2) != 0 && (MiFlags & 0x10000) != 0 )
  {
    LOBYTE(v8) = MI_PFN_IS_PROTO((_UNICODE_STRING *)Pfn1, (_UNICODE_STRING *)v3, v5, v2);
    if( !v8 && (MiFlags & 0x8000) != 0 )
      *(_QWORD *)&FullName.Length = (__int64)((*((_QWORD *)Pfn1 + 1) << 25) - ((_QWORD)MmGetPteBase() << 25)) >> 16;
    v10 = v3 & 1;
    LOBYTE(v3) = v9 & 0xFE;
    if( !v10 )
      LOBYTE(v3) = v9;
    v11 = 4 * v10 + 2;
    if( (v3 & 0x20) != 0 )
    {
      v11 |= 0x40u;
      if( (*((_BYTE *)Pfn1 + 34) & 0x10) == 0 && (*((_DWORD *)Pfn1 + 4) & 4) == 0 )
        v11 |= 0x800u;
    }
    if( (int)KeSetPagePrivilege(v6, &FullName, v11) < 0 )
      KeBugCheckEx(0x1Au, (PVOID)0x5150C, v6, 0i64, 0i64);
  }
  if( ((*((_QWORD *)Pfn1 + 5) >> 60) & 7) != 3 )
    *((_QWORD *)Pfn1 + 5) = *((_QWORD *)Pfn1 + 5) & 0x8FFFFFFFFFFFFFFFui64 | 0x3000000000000000i64;
  if( (v3 & 1) != 0 && (MiFlags & 0x10000) != 0 )
  {
    MiGetPagePrivilege((ULONG_PTR)Pfn1, 1ui64, (_KE_PRIVILEGED_PAGE_IDENTITY *)&FullName);
    KeSetPagePrivilege(v6, &FullName, 4);
  }
  if( v7 != 17 )
  {
    _InterlockedAnd64((volatile signed __int64 *)Pfn1 + 3, 0x7FFFFFFFFFFFFFFFui64);
    __writecr8(v7);
  }
}

Referenced by:

MiAllocateWsle
MiCompleteSecureProcessFault
MiCopyPage
MiFillPerSessionProtos
MiGatherMappedPages
MiInitializeBootLoadedDriverPfns
MiRevertValidPte
MiSetSystemCodeProtection
MiSwitchToPfns
MiValidateImagePfn
MiValidateInPage
MiValidateKernelHalLargePageRange