MiGetSlabAllocatorStandbyList
INT64 __fastcall MiGetSlabAllocatorStandbyList(INT64 a1, INT64 a2){
unsigned __int64 v2;
__int64 v4;
__int64 v5[2];
INT64 v6;
if( (_DWORD)a2 )
{
v5[0] = a1;
v6 = 0i64;
v4 = *(_QWORD *)(a1 + 40) >> 39;
v5[1] = (a1 - (__int64)MmGetPfnDb()) / 48;
MiEnumerateSlabAllocators(
*(_QWORD *)(qword_140C4E388 + 8 * (v4 & 0x3FF)),
(unsigned int(__fastcall *)(__int64, unsigned __int64, __int64))MiGetSlabStandbyListWorker,
(__int64)v5);
return v6;
}
else
{
v2 = ((*(_QWORD *)a1 & 0xFFFFFFF000000000ui64 | ((unsigned __int64)*(unsigned __int8 *)(a1 + 39) << 28)) << 8) | *(unsigned __int16 *)(a1 + 36) | (*(_QWORD *)(a1 + 24) >> 20) & 0xFFFFF0000i64;
_InterlockedDecrement((volatile signed __int32 *)(v2 + 136));
return *(_QWORD *)(v2 + 40) + 64i64;
}
}Referenced by:
MiInsertPageInList
MiUnlinkPageFromList