MiReturnExcessPoolCommit
VOID __fastcall MiReturnExcessPoolCommit(INT64 a1){
__int16 v1;
__int64 v3;
__int64 v4;
INT64 v5;
__int64 v6;
__int64 v7;
_MMPFN *v8;
UINT64 v9[2];
__int64 v10;
__int64 v11;
__int128 v12;
v1 = *(_WORD *)(a1 + 78);
if( (v1 & 2) != 0 )
{
v3 = *(_QWORD *)(a1 + 24);
v4 = *(_QWORD *)(a1 + 8);
if( v3 != v4 )
MiReturnCommit(
*(_MI_PARTITION **)(qword_140C4E388 + 8i64 * *(unsigned __int16 *)(*(_QWORD *)(a1 + 48) + 174i64)),
v4 - v3);
}
else if( (v1 & 4) != 0 )
{
v5 = *(_QWORD *)(a1 + 16);
if( v5 )
MiFreeLargePageChain(v5);
v6 = *(_QWORD *)(a1 + 24);
v7 = *(_QWORD *)(a1 + 8);
if( v6 != v7 )
{
v9[1] = 0i64;
v10 = 0i64;
v11 = v7 - v6;
v9[0] = v7 - v6;
v12 = 0i64;
MiReturnPoolCharges(v9, 0i64);
}
}
else if( (v1 & 0x100) == 0 )
{
v8 = *(_MMPFN **)(a1 + 16);
if( v8 )
MiReturnPhysicalPoolPages(v8);
}
}Referenced by:
MiCommitPoolMemory