MiInitializePfnForOtherProcess

VOID __stdcall MiInitializePfnForOtherProcess(
        UINT64 PageFrameIndex,
        _MMPTE *PointerPte,
        UINT64 ContainingPageFrame,
        UINT64 Flags){
  __int16 v4; 
  _MMPFN *PfnDb; 
  _MMPFN *v8; 
  UINT8 v9; 
  unsigned __int64 v10; 
  __int64 v11; 
  unsigned __int64 v12; 
  char v13; 
  UINT64 SpinCount; 

  v4 = Flags;
  PfnDb = MmGetPfnDb();
  v8 = &PfnDb[PageFrameIndex];
  if( (Flags & 0x10) != 0 )
  {
    LODWORD(SpinCount) = 0;
    v9 = 17;
    while( _interlockedbittestandset64((volatile signed __int32 *)&v8->u2, 0x3Fui64) )
    {
      do
        KeYieldProcessorEx(&SpinCount);
      while( v8->u2._bf_0 < 0 );
    }
  }
  else
  {
    v9 = MiLockPageInline(&PfnDb[PageFrameIndex]);
  }
  v10 = v8->u2._bf_0 & 0xF0FFFFFFFFFFFFFFui64;
  v8->PteLong = (unsigned __int64)PointerPte;
  v8->u2._bf_0 = v10;
  v8->OriginalPte.u.Long = MiSwizzleInvalidPte(128i64);
  v8->u3.ReferenceCount = 1;
  if( (v4 & 0x80u) != 0 )
    v12 = v11 ^ ((v11 + 1) ^ v11) & 0x3FFFFFFFFFFFFFFFi64;
  else
    v12 = v11 & 0xC000000000000000ui64 | 1;
  v8->u2._bf_0 = v12;
  v13 = *((_BYTE *)&v8->u3 + 2) | 0x10;
  *((_BYTE *)&v8->u3 + 2) = v13;
  if( (v4 & 0x200) != 0 )
    *((_BYTE *)&v8->u3 + 2) = v13 & 0xF8 | 6;
  v8->u4._bf_0 ^= (ContainingPageFrame ^ v8->u4._bf_0) & 0xFFFFFFFFFi64;
  _InterlockedAnd64(&v8->u2.Lock, 0x7FFFFFFFFFFFFFFFui64);
  if( v9 != 17 )
    __writecr8(v9);
  if( (v4 & 0x800) == 0 )
    MiLockAndIncrementShareCount(ContainingPageFrame);
}

Referenced by:

MiAllocateTopLevelPage
MiDemoteValidLargePageOneLevel
MiDuplicateCloneLeaf
MiInitializeShadowPageTable
MiInitializeSystemPageTable
MiMakeOutswappedPageResident
MiMapNewSession
MiMapPageFileHash