MiFinishPageFileExtension
VOID __stdcall MiFinishPageFileExtension(
_MI_PARTITION *Partition,
_MMPAGING_FILE *PagingFile,
UINT64 AdditionalAllocation){
INT64 *v3;
KIRQL v7;
__int64 v8;
unsigned int v9;
unsigned __int64 v10;
v3 = (INT64 *)((char *)PagingFile + 232);
v7 = ExAcquireSpinLockExclusive((PEX_SPIN_LOCK)PagingFile + 58);
v8 = *((_QWORD *)PagingFile + 14);
v9 = *(_DWORD *)PagingFile;
v10 = v7;
RtlClearBits((RTL_BITMAP *)(v8 + 8), *(_DWORD *)PagingFile, (unsigned int)AdditionalAllocation);
RtlClearBits((RTL_BITMAP *)(v8 + 24), v9, (unsigned int)AdditionalAllocation);
LOBYTE(v8) = *((_BYTE *)PagingFile + 206);
*(_QWORD *)PagingFile += AdditionalAllocation;
*((_QWORD *)PagingFile + 3) += AdditionalAllocation;
*((_QWORD *)PagingFile + 6) += AdditionalAllocation;
++*((_DWORD *)PagingFile + 32);
MiCoalescePageFileBitmapsCache(PagingFile, 0i64, v9);
MiUpdateReserveClusterInfo(*((_QWORD *)PagingFile + 31), 0i64, 0);
ExReleaseSpinLockExclusiveFromDpcLevel(v3);
__writecr8(v10);
if( (v8 & 1) == 1 )
KeSetEvent((PRKEVENT)((char *)Partition + 880), 0);
}Referenced by:
MiAttemptPageFileExtension