MiReferenceOwningSession

NTSTATUS __stdcall MiReferenceOwningSession(_XSTATE_CONFIGURATION *a1){
  UINT64 *v1; 
  _MMPFN *TopLevelPfn; 
  _MM_SESSION_SPACE *v4; 
  NTSTATUS v5; 
  _KLOCK_QUEUE_HANDLE LockHandle; 

  memset(&LockHandle, 0, sizeof(LockHandle));
  TopLevelPfn = MiGetTopLevelPfn((_MMPFN *)a1, v1);
  if( (TopLevelPfn->u2._bf_0 & 0x4000000000000000i64) != 0 )
  {
    if( TopLevelPfn != (_MMPFN *)a1 )
      _InterlockedAnd64(&TopLevelPfn->u2.Lock, 0x7FFFFFFFFFFFFFFFui64);
  }
  else
  {
    v4 = (_MM_SESSION_SPACE *)(((unsigned __int64)TopLevelPfn->u1.$976DF529DAC3D73085C9E386D94B91E6::$E228DCF3D8940E384DBC5EFCA756D8B6::_bf_0 >> 13) & 0x7FFFFFFFFFF0i64 | 0xFFFF800000000000ui64);
    if( TopLevelPfn != (_MMPFN *)a1 )
      _InterlockedAnd64(&TopLevelPfn->u2.Lock, 0x7FFFFFFFFFFFFFFFui64);
    if( MiTryToAcquireExpansionLockAtDpc(&LockHandle) )
    {
      v5 = (unsigned int)MiSelectSessionAttachProcess(v4);
      KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
      return v5;
    }
  }
  return 0;
}

Referenced by:

MiCapturePfnVm
MiLockStealSystemVm