MmResetDriverPaging

VOID __stdcall MmResetDriverPaging(PVOID AddressWithinSection){
  __int64 v1; 
  __int64 v2; 
  char *v3; 
  IMAGE_NT_HEADERS *v4; 
  INT64 *v5; 
  __int64 SizeOfOptionalHeader; 
  _IMAGE_OPTIONAL_HEADER64 *p_OptionalHeader; 
  int NumberOfSections; 
  _DWORD *i; 
  unsigned int v10; 
  __int64 v11; 
  MMPTE *PteAddress; 
  unsigned __int64 v13; 
  v1 = MiImagePagable(0i64, (unsigned __int64)AddressWithinSection);
  v2 = v1;
  if( v1 )
  {
    v3 = *(char **)(v1 + 48);
    v4 = RtlImageNtHeader(v3);
    MiCancelPhase0Locking(v2);
    SizeOfOptionalHeader = v4->FileHeader.SizeOfOptionalHeader;
    p_OptionalHeader = &v4->OptionalHeader;
    NumberOfSections = v4->FileHeader.NumberOfSections;
    for( i = (_DWORD *)((char *)&p_OptionalHeader->Magic + SizeOfOptionalHeader); NumberOfSections; --NumberOfSections )
    {
      if( (i[9] & 0x2000000) == 0 && !MmImageSectionPagable(i, v5) )
      {
        v10 = i[4];
        if( v10 < i[2] )
          v10 = i[2];
        MiGetPteAddress(&v3[(unsigned int)i[3] - 1 + (unsigned __int64)v10]);
        PteAddress = MiGetPteAddress(&v3[v11]);
        MiLockCode(v2, (unsigned __int64)PteAddress, v13, 2);
      }
      i += 10;
    }
  }
}

Referenced by:

No references.