MiUnmapPageInHyperSpaceWorker

VOID __stdcall MiUnmapPageInHyperSpaceWorker(VOID *VirtualAddress, UINT8 OldIrql, UINT64 Flags){
  unsigned __int64 v3; 
  struct _KPRCB *CurrentPrcb; 
  _MMPTE *v5; 
  unsigned int v6; 
  unsigned __int64 v7; 
  _QWORD *MmInternal; 
  unsigned __int64 Long; 
  int v10; 

  v3 = OldIrql;
  CurrentPrcb = KeGetCurrentPrcb();
  v5 = (_MMPTE *)((char *)MmGetPteBase() + (((unsigned __int64)VirtualAddress >> 9) & 0x7FFFFFFFF8i64));
  v6 = 0;
  v7 = 0i64;
  MmInternal = CurrentPrcb->MmInternal;
  if( MmInternal )
  {
    MmInternal[1543] = 0i64;
  }
  else
  {
    v7 = (unsigned __int64)CurrentPrcb->HyperPte & 0xFFFFFFFFFFFFF000ui64;
    v6 = ((__int64)CurrentPrcb->HyperPte & 0xFFF) + 1;
  }
  if( (Flags & 0x80000000) == 0i64 )
  {
    v5->u.Long = ZeroPte.u.Long;
  }
  else
  {
    Long = ZeroPte.u.Long;
    LOBYTE(v10) = MiPteInShadowRange((UINT64)v5);
    if( v10 && (KeGetCurrentThread()->ApcState.Process->Flags3 & 0x1000) != 0 && (ZeroPte.u.Long & 1) != 0 )
      Long = ZeroPte.u.Long | 0x8000000000000000ui64;
    v5->u.Long = Long;
  }
  if( !MmInternal )
  {
    if( v6 == 64 )
    {
      MiFlushHyperSpace();
      v6 = 0;
    }
    CurrentPrcb->HyperPte = (void *)(v7 | v6);
  }
  if( (_BYTE)v3 != 17 )
    __writecr8(v3);
}

Referenced by:

KiInSwapProcesses
MiArePageContentsZero
MiBuildMappedCluster
MiClearContainingMapping
MiCompletePrivateZeroFault
MiComputePageHash
MiConfirmPageIsZero
MiConvertPrivateToProto
MiConvertStandbyToProto
MiCopySinglePage
MiCopyToUserVa
MiCreateSystemPageTable
MiDecrementAndInsertStandbyPages
MiDeletePteRun
MiDemoteValidLargePageOneLevel
MiFillPhysicalPages
MiFinishLastForkPageTable
MiFlushCacheForAttributeChange
MiFreePagesFromMdl
MiGetFileHashPage
MiGetPageChain
MiInitializeImageHeaderPage
MiInitializeImageProtos
MiMakeProtoTransition
MiMirrorOmitPagesFromCopy
MiPersistPage
MiPfnShareCountIsZero
MiReadWriteAnyLevelShadowPte
MiReplaceTransitionPage
MiReplicatePteChangeToProcess
MiRestoreTransitionPte
MiRewriteTrimPteAsDemandZero
MiSplitDirectMapPage
MiSwapNumaStandbyPage
MiUpdateSystemPdes
MiWaitForInPageComplete
MiWsleFree
MiZeroCfgSystemWideBitmapWorker
MmOutSwapProcess
MmReplaceImportEntry
MmUpdateUserShadowStackValue