MiInitializeEnclavePfn

VOID __stdcall MiInitializeEnclavePfn(UINT64 PageFrameIndex, _MMPTE *PointerPte, UINT64 ProtectionMask){
  char v3; 
  _MMPFN *v5; 
  unsigned __int64 v6; 
  unsigned __int64 v7; 
  char v8; 

  v3 = ProtectionMask;
  v5 = &MmGetPfnDb()[PageFrameIndex];
  v6 = MiLockPageInline(v5);
  *((_BYTE *)&v5->u3 + 2) = *(_BYTE *)(&v5->u3 + 1) & 0xF8 | 6;
  v7 = v5->u2._bf_0 & 0xC000000000000001ui64;
  v5->u3.ReferenceCount = 1;
  v8 = *((_BYTE *)&v5->u3 + 2);
  v5->u2._bf_0 = v7 | 1;
  *((_BYTE *)&v5->u3 + 2) = v8 | 0x10;
  v5->PteLong = (unsigned __int64)PointerPte;
  v5->OriginalPte.u.Long = MiSwizzleInvalidPte(32i64 * (v3 & 0x1F));
  _InterlockedAnd64(&v5->u2.Lock, 0x7FFFFFFFFFFFFFFFui64);
  __writecr8(v6);
}

Referenced by:

MiAddPagesToEnclave
MiCopyPagesIntoEnclave
MiCreateHardwareEnclave