MiTrimUnusedPageFileRegionsApc

VOID __stdcall MiTrimUnusedPageFileRegionsApc(PVOID NormalContext, PVOID SystemArgument1, PVOID SystemArgument2){
  _MI_PARTITION *v3; 
  __int64 v5; 
  INT64 v6; 
  unsigned __int64 v7; 
  unsigned int FreePageFileSpace; 
  unsigned int v9; 
  unsigned __int64 v10; 
  unsigned __int64 v11; 
  INT64 v12; 
  unsigned __int64 v13; 
  unsigned int v14; 
  unsigned int v15; 
  unsigned __int64 v16; 
  v3 = (_MI_PARTITION *)*((_QWORD *)NormalContext + 3);
  v5 = *((_QWORD *)v3 + *((unsigned int *)NormalContext + 8) + 868);
  v6 = MiSwizzleInvalidPte((unsigned __int64)*((unsigned int *)NormalContext + 10) << 32);
  v7 = *((unsigned int *)NormalContext + 9);
  v16 = ((unsigned __int64)(*(_WORD *)(v5 + 204) & 0xF) << 12) | v6 & 0xFFFFFFFFFFFF0FFFui64;
  FreePageFileSpace = MiFindFreePageFileSpace(v3, (_MMPTE *)&v16, v7, 0xABu, v14);
  v9 = FreePageFileSpace;
  if( FreePageFileSpace >= *((_DWORD *)NormalContext + 9) )
  {
    v10 = v16;
    if( qword_140C4DC80 && (v16 & 0x10) == 0 )
      v10 = v16 & ~qword_140C4DC80;
    v11 = HIDWORD(v10);
    *((_DWORD *)NormalContext + 10) = v11;
    v12 = MiSwizzleInvalidPte((unsigned __int64)(FreePageFileSpace + (unsigned int)v11) << 32);
    v13 = *(_QWORD *)v5;
    v16 = ((unsigned __int64)(*(_WORD *)(v5 + 204) & 0xF) << 12) | v12 & 0xFFFFFFFFFFFF0FFFui64;
    *((_DWORD *)NormalContext + 11) = v9 + MiFindFreePageFileSpace(v3, (_MMPTE *)&v16, v13, 0x6Bu, v15);
  }
  KeSetEvent((PRKEVENT)NormalContext, 0);
}

Referenced by:

No references.