MiDeleteVadBitmap

VOID __stdcall MiDeleteVadBitmap(_EPROCESS *Process){
  _RTL_BALANCED_NODE *Root; 
  _MMWSL_INSTANCE *VmWorkingSetList; 
  unsigned __int64 LockedEntries; 
  VOID *v5; 
  _EPROCESS *v6; 
  _MI_PARTITION *ProcessPartition; 
  char *v8; 
  PKINTERRUPT_ROUTINE **p_LockedEntries; 
  __int64 v10; 
  _MI_PARTITION *v11; 
  __int64 v12; 
  UINT64 v13; 
  UINT64 v14; 

  Root = Process->CloneRoot.Root;
  if( Root )
    KeBugCheckEx(0x1Au, (PVOID)0x3455, Process, Root, 0i64);
  VmWorkingSetList = Process->Vm.Instance.VmWorkingSetList;
  if( VmWorkingSetList )
  {
    LockedEntries = VmWorkingSetList[6].LockedEntries;
    MiHyperSpaceSize();
    LOBYTE(v5) = 17;
    MiDeletePagablePteRange((_EPROCESS *)&Process->Vm, v5);
    ProcessPartition = MiGetProcessPartition(Process, v6);
    v8 = (char *)VmWorkingSetList[7].NextPteToAge + LockedEntries;
    p_LockedEntries = (PKINTERRUPT_ROUTINE **)&VmWorkingSetList[14].LockedEntries;
    v10 = 0i64;
    v11 = ProcessPartition;
    v12 = 2i64;
    do
    {
      v10 += (__int64)*p_LockedEntries++;
      --v12;
    }
    while( v12 );
    v13 = (UINT64)&v8[v10];
    if( v13 )
      MiReturnFullProcessCharges((ULONG_PTR)Process, v13);
    if( v13 )
      MiReturnCommit(v11, v13);
    HalSystemVectorDispatchEntry(v10, p_LockedEntries, (PKINTERRUPT_ROUTINE *)v12);
    if( Process->Vm.Shared.ChargedWslePages )
    {
      MiUpdateChargedWsles((INT64)&Process->Vm);
      MiReturnFullProcessCommitment(Process, v14);
    }
  }
}

Referenced by:

MiDeleteFinalPageTables