MmResetDriverPaging

VOID __stdcall MmResetDriverPaging(VOID *AddressWithinSection){
  _KLDR_DATA_TABLE_ENTRY *v1; 
  _KLDR_DATA_TABLE_ENTRY *v2; 
  UINT64 DllBase; 
  __int64 v4; 
  __int64 v5; 
  __int64 v6; 
  __int64 v7; 
  int v8; 
  _IMAGE_SECTION_HEADER *i; 
  union {unsigned int PhysicalAddress;unsigned int VirtualSize;} v10; 
  __int64 v11; 
  _MMPTE *PteAddress; 
  _MMPTE *v13; 

  v1 = MiImagePagable(0i64, AddressWithinSection);
  v2 = v1;
  if( v1 )
  {
    DllBase = (UINT64)v1->DllBase;
    LODWORD(v4) = RtlImageNtHeader(DllBase);
    v5 = v4;
    MiCancelPhase0Locking(v2);
    v6 = *(unsigned __int16 *)(v5 + 20);
    v7 = v5 + 24;
    v8 = *(unsigned __int16 *)(v5 + 6);
    for( i = (_IMAGE_SECTION_HEADER *)(v6 + v7); v8; --v8 )
    {
      if( (i->Characteristics & 0x2000000) == 0 && !MmImageSectionPagable(i) )
      {
        v10.PhysicalAddress = i->SizeOfRawData;
        if( v10.PhysicalAddress < i->Misc.PhysicalAddress )
          v10.PhysicalAddress = (unsigned int)i->Misc;
        MiGetPteAddress((VOID *)(i->VirtualAddress + (unsigned __int64)v10.PhysicalAddress + DllBase - 1));
        PteAddress = MiGetPteAddress((VOID *)(v11 + DllBase));
        MiLockCode(v2, PteAddress, v13, 2ui64);
      }
      ++i;
    }
  }
}

Referenced by:

No references.